Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ src/Parser/parser.cc	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -9272,6 +9272,5 @@
 	    std::cout << "in file " << yyfilename << " ";
 	} // if
-//	std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
-	std::cout << "at line " << yylineno << " reading token \"" << yytext << "\"" << std::endl;
+	std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;
 }
 
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ src/Parser/parser.yy	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun 10 14:22:15 2015
-// Update Count     : 1039
+// Last Modified On : Wed Jun 10 20:31:54 2015
+// Update Count     : 1040
 // 
 
@@ -2723,5 +2723,5 @@
 	    std::cout << "in file " << yyfilename << " ";
 	} // if
-	std::cout << "at line " << yylineno << " reading token \"" << yytext << "\"" << std::endl;
+	std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;
 }
 
Index: src/Tests/Abstype.c
===================================================================
--- src/Tests/Abstype.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Abstype.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,27 @@
+type T | { T x( T ); };
+
+T y( T t ) {
+	T t_instance;
+	return x( t );
+}
+
+forall( type T ) lvalue T *?( T * );
+int ?++( int * );
+int ?=?( int *, int );
+forall( dtype DT ) DT * ?=?( DT **, DT * );
+
+type U = int *;
+
+U x( U u ) {
+	U u_instance = u;
+	(*u)++;
+	return u;
+}
+
+int *break_abstraction( U u ) {
+	return u;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Array.c
===================================================================
--- src/Tests/Array.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Array.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,37 @@
+int a1[];
+int a2[*];
+double a4[3.0];
+
+int m1[][3];
+int m2[*][*];
+int m4[3][3];
+
+typedef int T;
+
+int fred() {
+	int a1[];
+	int a2[*];
+	int a4[3];
+	int T[3];
+}
+
+int mary( int T[3],
+		  int p1[const 3],
+		  int p2[static 3],
+		  int p3[static const 3]
+	) {
+}
+
+int (*tom())[3] {
+}
+
+int (*(jane)())( int T[3],
+				 int p1[const 3],
+				 int p2[static 3],
+				 int p3[static const 3]
+	) {
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/AsmName.c
===================================================================
--- src/Tests/AsmName.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/AsmName.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+extern int x asm( "xx" );
+
+int fred( int x ) {
+    static int y asm( "yy" );
+
+// Cforall extensions
+
+    static * int z asm( "zz" );
+}
+
+// errors
+
+//typedef int t asm( "tt" );
+//int mary( int p asm( "pp" ) ) {}
Index: src/Tests/Attributes.c
===================================================================
--- src/Tests/Attributes.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Attributes.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,42 @@
+int @max = 3;
+
+int main() {
+    int x;
+    type @type(type t);		// compiler intrinsic
+    type @widest(type t);
+    @type(x) *y;		// gcc: typeof(x) *y;
+    const @widest(double) *w;	// gcc: const typeof(x) *w;
+    * @type(3 + 4) z;		// cfa declaration syntax
+    y = @max;		
+    z = @max(x) + @size(int);
+    y = @min(3 + 4);
+    if ( @const(x) ) { }
+    if ( @volatile(y) ) { }
+    if ( @extern(y) ) { }
+    if ( @static(y) ) { }
+    @max;
+}
+
+int @foo(int) {
+    return 7;
+}
+
+int @voon;
+double @voon;
+
+int @bort(int);
+int @bort(double);
+
+void g( int );
+
+void f() {
+	float x;
+	double x;
+	@bort(x);
+	@bort(int);
+	g( @voon );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Cast.c
===================================================================
--- src/Tests/Cast.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Cast.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15 @@
+char f;
+
+void f() {
+	char f;
+	double f;
+	(int)f;
+	short f;
+	(int)f;
+	(void(*)())f;
+	([long, long double, *[]()])([f, f, f]);
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/CastError.c
===================================================================
--- src/Tests/CastError.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/CastError.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+int f;
+
+void f() {
+	int f;
+	double f;
+	(char)f;
+	(int(*)())f;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/CharStringConstants.c
===================================================================
--- src/Tests/CharStringConstants.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/CharStringConstants.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,87 @@
+int main() {
+// character constants
+
+    ' ';
+    'a';
+    '"';
+    '_';
+
+    '\a';				// simple escape
+    '\b';
+    '\e';				// GCC
+    '\f';
+    '\n';
+    '\r';
+    '\t';
+    '\v';
+    '\'';
+    '\"';
+    '\?';
+    '\\';
+
+    '\0';				// octal escape
+
+    '\377';
+
+    '\xf';				// hex escape
+    '\xff';
+
+// warnings/errors
+
+    '';					// empty character
+    'aa';				// multi-character
+    'a\na';				// multi-character, embedded escape
+    'a\0a';
+    '\xfff';				// hex escape out of range
+    '_\377_';				// multi-character
+    '_\xff_';
+    '\xffff';				// hex escape out of range
+    'a\xff34w';
+    '\xf_f';				// multi-character
+    '\xff_ff';
+
+// string constants
+
+    " ";
+    "a";
+    "'";
+    '_';
+
+    "\a";				// simple escape
+    "\b";
+    "\e";				// GCC
+    "\f";
+    "\n";
+    "\r";
+    "\t";
+    "\v";
+    "\'";
+    "\"";
+    "\?";
+    "\\";
+
+    "\0";				// octal escape
+    "\377";
+
+    "\xf";				// hex escape
+    "\xff";
+
+    "";
+    "aa";
+    "a\na";
+    "a\0a";
+    "_\377_";
+    "_\xff_";
+    "\xf_f";
+
+// warnings/errors
+
+    "\xff_ff";
+    "\xfff";				// hex escape out of range
+    "a\xff34w";
+    "\xffff";
+}
+
+// Local Variables: //
+// compile-command: "../../../bin/cfa -std=c99 CharStringConstants.c" //
+// End: //
Index: src/Tests/CommentMisc.c
===================================================================
--- src/Tests/CommentMisc.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/CommentMisc.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,44 @@
+/* single line */
+// single line
+
+// single line containing */
+// single line containing /*
+// single line containing /* */
+
+/* 1st */ int i;
+int i; /* 2nd */
+/* 1st */ int i; /* 2nd */
+/* 1st */ /* 2nd */
+
+/* 1st
+   2nd */ int i;
+
+/*
+*/
+
+/*
+
+*/
+
+/*
+  1st
+*/
+
+/*
+  1st
+  2nd
+*/
+
+// ignore preprocessor directives
+
+#line 2
+ #
+ #include <fred>
+	#define mary abc
+
+// alternative ANSI99 brackets
+
+int main() <%
+    int x<:10:>;
+%>
+
Index: src/Tests/Constant0-1.c
===================================================================
--- src/Tests/Constant0-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Constant0-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,46 @@
+// Cforall extension
+
+// value
+
+int 0;
+const int 0;
+static const int 0;
+int 1;
+const int 1;
+static const int 1;
+int 0, 1;
+const int 0, 1;
+int (0), (1);
+int ((0)), ((1));
+static const int 0, 1;
+struct { int i; } 0;
+const struct { int i; } 1;
+static const struct { int i; } 1;
+
+// pointer
+
+int *0, *1;
+int *(0), *(1);
+int (*0), (*1);
+int ((*0)), ((*1));
+int * const (0), * const 1;
+int (* const 0), (* const 1);
+int ((* const 0)), ((* const 1));
+struct { int i; } *0;
+
+// Cforall style
+
+* int x, 0;
+const * int x, 0;
+static const * int x, 0;
+* struct { int i; } 0;
+const * struct { int i; } 0;
+static const * struct { int i; } 0;
+static * int x, 0;
+static const * int x, 0;
+const * * int x, 0;
+
+int main() {
+    int 1, * 0;
+    * int x, 0;
+}
Index: src/Tests/Context.c
===================================================================
--- src/Tests/Context.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Context.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15 @@
+context has_q( type T ) {
+	T q( T );
+};
+
+forall( type z | has_q( z ) ) void f() {
+	context has_r( type T, type U ) {
+		T r( T, T (T,U) );
+	};
+  
+	extern type x, y | has_r( x, y );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/DeclarationErrors.c
===================================================================
--- src/Tests/DeclarationErrors.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/DeclarationErrors.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+static short int volatile static const x9;		// duplicate static
+struct { int i; } const static volatile static x18;	// duplicate static
+struct { int i; } const static volatile static volatile x19; // duplicate static & volatile
+typedef int Int;
+static Int volatile static const x28;			// duplicate static
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/DeclarationSpecifier.c
===================================================================
--- src/Tests/DeclarationSpecifier.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/DeclarationSpecifier.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+typedef short int Int;
+
+
+const short int volatile x1;
+static const short int volatile x2;
+const static short int volatile x3;
+const short static int volatile x4;
+const static volatile short int x4;
+const short int static volatile x5;
+const short int volatile static x6;
+const short volatile int static x7;
+short int volatile static const x8;
+static short int volatile static const x9;		// duplicate static
+
+const volatile struct { int i; } x10;
+const struct { int i; } volatile x11;
+struct { int i; } const volatile x12;
+static const volatile struct { int i; } x13;
+const static struct { int i; } volatile x14;
+struct { int i; } static const volatile x15;
+struct { int i; } const static volatile x16;
+struct { int i; } const volatile static x17;
+struct { int i; } const static volatile static x18;	// duplicate static
+struct { int i; } const static volatile static volatile x19; // duplicate static & volatile
+
+const Int volatile x20;
+static const Int volatile x21;
+const static Int volatile x22;
+const static Int volatile x23;
+const Int static volatile x24;
+const Int volatile static x25;
+const volatile Int static x26;
+Int volatile static const x27;
+static Int volatile static const x28;			// duplicate static
+
+const volatile struct { Int i; } x29;
+const struct { Int i; } volatile x30;
+struct { Int i; } const volatile x31;
+static const volatile struct { Int i; } x32;
+const static struct { Int i; } volatile x33;
+struct { Int i; } static const volatile x34;
+struct { Int i; } const static volatile x35;
+struct { Int i; } const volatile static x36;
+
+
+const static inline const volatile int f01();		// duplicate const
+volatile inline const volatile static int f02();	// duplicate volatile
+const inline const volatile int static f03();		// duplicate const
+volatile inline static const volatile int f04();	// duplicate volatile
+const static const inline volatile int f05();		// duplicate const
+volatile static const volatile inline int f06();	// duplicate volatile
+const static const volatile int inline f07();		// duplicate const
+volatile static const int inline volatile f08();	// duplicate volatile
+
+static inline const volatile int f11();
+inline const volatile static int f12();
+inline const volatile int static f13();
+inline static const volatile int f14();
+static const inline volatile int f15();
+static const volatile inline int f16();
+static const volatile int inline f17();
+static const int inline volatile f18();
+
+short static inline const volatile int f21();
+inline short const volatile static int f22();
+inline const short volatile int static f23();
+inline static const short volatile int f24();
+static const inline volatile short int f25();
+static const volatile inline int short f26();
+static const volatile int inline short f27();
+static const int inline volatile short f28();
+
+static inline const volatile struct { int i; } f31();
+inline const volatile static struct { int i; } f32();
+inline const volatile struct { int i; } static f33();
+inline static const volatile struct { int i; } f34();
+static const inline volatile struct { int i; } f35();
+static const volatile inline struct { int i; } f36();
+static const volatile struct { int i; } inline f37();
+static const struct { int i; } inline volatile f38();
+
+static inline const volatile Int f41();
+inline const volatile static Int f42();
+inline const volatile Int static f43();
+inline static const volatile Int f44();
+static const inline volatile Int f45();
+static const volatile inline Int f46();
+static const volatile Int inline f47();
+static const Int inline volatile f48();
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Enum.c
===================================================================
--- src/Tests/Enum.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Enum.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,22 @@
+enum Colors {
+	Red,
+	Yellow,
+	Pink,
+	Blue,
+	Purple,
+	Orange,
+	Green
+};
+
+void f( void ) {
+	enum Fruits {
+		Apple,
+		Banana,
+		Pear,
+		Mango
+	} fruit = Mango;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Exception.c
===================================================================
--- src/Tests/Exception.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Exception.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,24 @@
+int fred() {
+    int x;
+    throw 3;
+    throw x = 5;
+
+    try {
+    } catch( int i ) {}
+
+    try {
+	x/4;
+    } catch( int) {
+    } catch( int x ) {
+    } catch( struct { int i; } ) {
+    } catch( struct { int i; } x ) {
+    } catch( struct { int i; } *x ) {
+
+// Cforall extensions
+
+    } catch( * struct { int i; } ) {
+    } catch( * struct { int i; } x ) {
+    } catch( ... ) {
+//    } finally {
+    } // try
+}
Index: src/Tests/Expect-a/Abstype.txt
===================================================================
--- src/Tests/Expect-a/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,99 @@
+T: type
+  with assertions
+    x: function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+
+y: function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of t_instance: instance of type T (not function type) 
+                  Return Statement, returning: Applying untyped: 
+    Name: x
+...to: 
+    Name: t
+
+
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+?++: function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+U: type for pointer to signed int 
+x: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of u_instance: instance of type U (not function type) with initializer 
+          Simple Initializer:             Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Name: u
+
+                  Return Statement, returning: Name: u
+
+
+
+break_abstraction: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: u
+
+
+
Index: src/Tests/Expect-a/Array.txt
===================================================================
--- src/Tests/Expect-a/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,51 @@
+a1: open array of signed int 
+a2: variable length array of signed int 
+a4: array of double with dimension of constant expression 3.0 double 
+m1: open array of array of signed int with dimension of constant expression 3 signed int 
+m2: variable length array of variable length array of signed int 
+m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+T: typedef for signed int 
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a1: open array of signed int 
+        Declaration of a2: variable length array of signed int 
+        Declaration of a4: array of signed int with dimension of constant expression 3 signed int 
+        Declaration of T: array of signed int with dimension of constant expression 3 signed int 
+
+mary: function
+    with parameters
+      T: array of signed int with dimension of constant expression 3 signed int 
+      p1: const array of signed int with dimension of constant expression 3 signed int 
+      p2: static array of signed int with dimension of constant expression 3 signed int 
+      p3: const static array of signed int with dimension of constant expression 3 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+tom: function
+      accepting unspecified arguments
+    returning 
+      pointer to array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+jane: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+          with parameters
+            T: array of signed int with dimension of constant expression 3 signed int 
+            p1: const array of signed int with dimension of constant expression 3 signed int 
+            p2: static array of signed int with dimension of constant expression 3 signed int 
+            p3: const static array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-a/AsmName.txt
===================================================================
--- src/Tests/Expect-a/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,11 @@
+x: auto signed int 
+fred: function
+    with parameters
+      x: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: static signed int 
+        Declaration of z: static pointer to signed int 
+
Index: src/Tests/Expect-a/Attributes.txt
===================================================================
--- src/Tests/Expect-a/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Expect-a/Cast.txt
===================================================================
--- src/Tests/Expect-a/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+f: char 
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: char 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+        Declaration of f: short signed int 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    void 
+
+
+                  Expression Statement:
+            Cast of:
+              Tuple:
+                                  Name: f
+
+                                  Name: f
+
+                                  Name: f
+
+
+            to:
+              long signed int 
+              long double 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+
Index: src/Tests/Expect-a/CastError.txt
===================================================================
--- src/Tests/Expect-a/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+f: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: signed int 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              char 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Expect-a/CharStringConstants.txt
===================================================================
--- src/Tests/Expect-a/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+constant expression ' ' char 
+                  Expression Statement:
+constant expression 'a' char 
+                  Expression Statement:
+constant expression '"' char 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression '\a' char 
+                  Expression Statement:
+constant expression '\b' char 
+                  Expression Statement:
+constant expression '\e' char 
+                  Expression Statement:
+constant expression '\f' char 
+                  Expression Statement:
+constant expression '\n' char 
+                  Expression Statement:
+constant expression '\r' char 
+                  Expression Statement:
+constant expression '\t' char 
+                  Expression Statement:
+constant expression '\v' char 
+                  Expression Statement:
+constant expression '\'' char 
+                  Expression Statement:
+constant expression '\"' char 
+                  Expression Statement:
+constant expression '\?' char 
+                  Expression Statement:
+constant expression '\\' char 
+                  Expression Statement:
+constant expression '\0' char 
+                  Expression Statement:
+constant expression '\377' char 
+                  Expression Statement:
+constant expression '\xf' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '' char 
+                  Expression Statement:
+constant expression 'aa' char 
+                  Expression Statement:
+constant expression 'a\na' char 
+                  Expression Statement:
+constant expression 'a\0a' char 
+                  Expression Statement:
+constant expression '\xfff' char 
+                  Expression Statement:
+constant expression '_\377_' char 
+                  Expression Statement:
+constant expression '_\xff_' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression 'a\xff34w' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression " " array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "a" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "'" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression "\a" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\b" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\e" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\f" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\n" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\r" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\t" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\v" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\'" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\"" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\?" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\\" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\0" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\377" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xf" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "" array of char with dimension of constant expression 3 unsigned int 
+                  Expression Statement:
+constant expression "aa" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "a\na" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int 
+                  Expression Statement:
+constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+
Index: src/Tests/Expect-a/CommentMisc.txt
===================================================================
--- src/Tests/Expect-a/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+i: signed int 
+i: signed int 
+i: signed int 
+i: signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: array of signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Expect-a/Constant0-1.txt
===================================================================
--- src/Tests/Expect-a/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,88 @@
+0: signed int 
+0: const signed int 
+0: static const signed int 
+1: signed int 
+1: const signed int 
+1: static const signed int 
+0: signed int 
+1: signed int 
+0: const signed int 
+1: const signed int 
+0: signed int 
+1: signed int 
+0: signed int 
+1: signed int 
+0: static const signed int 
+1: static const signed int 
+struct __anonymous0
+    with members
+      i: signed int 
+
+0: instance of struct __anonymous0 
+struct __anonymous1
+    with members
+      i: signed int 
+
+1: const instance of struct __anonymous1 
+struct __anonymous2
+    with members
+      i: signed int 
+
+1: static const instance of struct __anonymous2 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+struct __anonymous3
+    with members
+      i: signed int 
+
+0: pointer to instance of struct __anonymous3 
+x: pointer to signed int 
+0: pointer to signed int 
+x: const pointer to signed int 
+0: const pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+struct __anonymous4
+    with members
+      i: signed int 
+
+0: pointer to instance of struct __anonymous4 
+struct __anonymous5
+    with members
+      i: signed int 
+
+0: const pointer to instance of struct __anonymous5 
+struct __anonymous6
+    with members
+      i: signed int 
+
+0: static const pointer to instance of struct __anonymous6 
+x: static pointer to signed int 
+0: static pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+x: const pointer to pointer to signed int 
+0: const pointer to pointer to signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of 1: signed int 
+        Declaration of 0: pointer to signed int 
+        Declaration of x: pointer to signed int 
+        Declaration of 0: pointer to signed int 
+
Index: src/Tests/Expect-a/Context.txt
===================================================================
--- src/Tests/Expect-a/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,63 @@
+context has_q
+    with parameters
+      T: type
+
+    with members
+      q: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+f: forall
+      z: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type z (not function type) 
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+          instance of context has_q 
+            with parameters
+              instance of type z (not function type) 
+
+
+    function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of context has_r
+            with parameters
+              T: type
+              U: type
+
+            with members
+              r: function
+                  with parameters
+                    instance of type T (not function type) 
+                    function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+                  returning 
+                    instance of type T (not function type) 
+
+
+        Declaration of x: auto type
+        Declaration of y: auto type
+          with assertions
+            instance of context has_r 
+              with parameters
+                instance of type x (not function type) 
+                instance of type y (not function type) 
+
+
+
Index: src/Tests/Expect-a/DeclarationErrors.txt
===================================================================
--- src/Tests/Expect-a/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-a/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Expect-a/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-a/Enum.txt
===================================================================
--- src/Tests/Expect-a/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+enum Colors
+    with members
+      Red: untyped entity 
+      Yellow: untyped entity 
+      Pink: untyped entity 
+      Blue: untyped entity 
+      Purple: untyped entity 
+      Orange: untyped entity 
+      Green: untyped entity 
+
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of enum Fruits
+            with members
+              Apple: untyped entity 
+              Banana: untyped entity 
+              Pear: untyped entity 
+              Mango: untyped entity 
+
+        Declaration of fruit: instance of enum Fruits with initializer 
+          Simple Initializer:             Name: Mango
+
+
Index: src/Tests/Expect-a/Exception.txt
===================================================================
--- src/Tests/Expect-a/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,60 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int 
+                  Throw Statement, returning: constant expression 3 signed int 
+
+                  Throw Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+constant expression 5 signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+            and handlers: 
+              Catch Statement
+              ... catching
+i: signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?/?
+                    ...to: 
+                        Name: x
+constant expression 4 signed int 
+            and handlers: 
+              Catch Statement
+              ... catching
+signed int 
+              Catch Statement
+              ... catching
+x: signed int 
+              Catch Statement
+              ... catching
+struct __anonymous0
+              Catch Statement
+              ... catching
+x: instance of struct __anonymous1 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous2 
+              Catch Statement
+              ... catching
+pointer to instance of struct __anonymous3 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous4 
+              Catch Statement
+              ... catching
+                  the rest
+
+
Index: src/Tests/Expect-a/Expression.txt
===================================================================
--- src/Tests/Expect-a/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,336 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of struct s
+            with members
+              i: signed int 
+
+        Declaration of p: pointer to instance of struct s 
+        Declaration of i: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: !?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ~?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: +?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: -?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: --?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?--
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?==?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?!=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Member Expression, with field: i            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: i
+                    Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: i
+            Second alternative:
+              Name: i
+
+
+
Index: src/Tests/Expect-a/Forall.txt
===================================================================
--- src/Tests/Expect-a/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,603 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to pointer to function
+          with parameters
+            void 
+          returning 
+            void 
+
+      pointer to function
+          with parameters
+            void 
+          returning 
+            void 
+
+    returning 
+      pointer to function
+          with parameters
+            void 
+          returning 
+            void 
+
+
+g1: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of f: function
+            with parameters
+              signed int 
+            returning 
+              void 
+
+        Declaration of h: function
+            with parameters
+              p: pointer to function
+                  with parameters
+                    void 
+                  returning 
+                    void 
+
+            returning 
+              void 
+
+        Declaration of x: signed int 
+        Declaration of y: pointer to function
+            with parameters
+              void 
+            returning 
+              void 
+
+        Declaration of z: char 
+        Declaration of w: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: f
+                ...to: 
+                    Name: y
+
+
+g2: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              void 
+
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              void 
+
+        Declaration of x: signed int 
+        Declaration of y: float 
+        Declaration of z: pointer to signed int 
+        Declaration of w: pointer to float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: z
+
+
+f: typedef for pointer to forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+swap: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of temp: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: left
+                Name: right
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: right
+                Name: temp
+
+
+context sumable
+    with parameters
+      T: type
+
+    with members
+      0: const instance of type T (not function type) 
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?++: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?+=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+T1: type
+  with assertions
+    0: const instance of type T1 (not function type) 
+    ?+?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?++: function
+        with parameters
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?+=?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+
+T2: type
+  with parameters
+    P1: type
+    P2: type
+
+T3: type
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T3 (not function type) 
+
+
+struct __anonymous0
+    with members
+      i: instance of type P1 (not function type) 
+      j: instance of type P2 (not function type) 
+
+T2: type for instance of struct __anonymous0 
+  with parameters
+    P1: type
+    P2: type
+
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T2 (not function type) 
+          with parameters
+            instance of type P1 (not function type) 
+            instance of type P2 (not function type) 
+
+
+
+w1: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+w2: typedef for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g2: instance of type w2 (not function type) 
+w3: type for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g3: instance of type w3 (not function type) 
+sum: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          instance of context sumable 
+            with parameters
+              instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: open array of instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of total: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: 0
+
+        Declaration of i: signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: n
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: total
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Name: total
+                        Applying untyped: 
+                            Name: ?[?]
+                        ...to: 
+                            Name: a
+                            Name: i
+
+
+                  Return Statement, returning: Name: total
+
+
+
+twice: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?+?
+...to: 
+    Name: t
+    Name: t
+
+
+
+min: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Conditional expression on: 
+  Cast of:
+    Applying untyped: 
+        Name: ?!=?
+    ...to: 
+        Applying untyped: 
+            Name: ?<?
+        ...to: 
+            Name: t1
+            Name: t2
+        Name: 0
+
+  to:
+    signed int 
+First alternative:
+  Name: t1
+Second alternative:
+  Name: t2
+
+
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int with initializer 
+          Simple Initializer:             Name: 1
+
+        Declaration of y: signed int with initializer 
+          Simple Initializer: constant expression 2 signed int 
+        Declaration of a: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: swap
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: twice
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: f
+                Applying untyped: 
+                    Name: min
+                ...to: 
+constant expression 4.0 double constant expression 3.0 double 
+                  Expression Statement:
+            Applying untyped: 
+                Name: sum
+            ...to: 
+constant expression 10 signed int                 Name: a
+
+
Index: src/Tests/Expect-a/Function.txt
===================================================================
--- src/Tests/Expect-a/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,126 @@
+a: signed int 
+a: float 
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+g: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Cast of:
+                  Name: a
+
+                to:
+                  signed int 
+
+                  Expression Statement:
+            Cast of:
+              Applying untyped: 
+                  Name: f
+              ...to: 
+                  Name: a
+
+            to:
+              signed int 
+
+
+p: tuple of types
+    signed int 
+
+p: tuple of types
+    signed int 
+    double 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+q: tuple of types
+    char 
+
+q: tuple of types
+    signed int 
+    signed int 
+
+q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+s: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Name: p
+                Name: q
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Tuple:
+                                      Name: q
+
+                                      Name: p
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: p
+                    Name: q
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: q
+                    Name: q
+
+
Index: src/Tests/Expect-a/Functions.txt
===================================================================
--- src/Tests/Expect-a/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,690 @@
+h: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      function
+          with parameters
+            void 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            void 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      g: function
+          with parameters
+            void 
+          returning 
+            void 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Applying untyped: 
+                    Name: *?
+                ...to: 
+                    Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: g
+                Name: h
+
+
+f1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f3: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f4: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f5: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f6: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f7: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f8: function
+      accepting unspecified arguments
+    returning 
+      pointer to pointer to signed int 
+    with body 
+      CompoundStmt
+
+f9: function
+      accepting unspecified arguments
+    returning 
+      pointer to const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f10: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+f12: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+fII1: function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII2: function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII3: auto function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII4: auto function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII5: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII6: function
+      accepting unspecified arguments
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII7: function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII8: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII9: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fO1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO3: function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO4: auto function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO5: auto function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      nothing 
+
+f: function
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      x: signed int 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+
+f: function
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f12: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      function
+          with parameters
+            signed int 
+            p: signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+
+f1: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const signed int 
+    with body 
+      CompoundStmt
+
+f2: static function
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+f3: inline static function
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f4: inline static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+
+f5: static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          const signed int 
+
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      open array of signed int 
+      array of signed int with dimension of constant expression 10 signed int 
+      open array of pointer to signed int 
+      array of pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to pointer to signed int 
+      array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to const pointer to signed int 
+      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      open array of const pointer to const pointer to signed int 
+      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      open array of signed int 
+      array of signed int with dimension of constant expression 10 signed int 
+      open array of pointer to signed int 
+      array of pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to pointer to signed int 
+      array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to const pointer to signed int 
+      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      open array of const pointer to const pointer to signed int 
+      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+T: typedef for signed int 
+f: function
+    with parameters
+      f: pointer to instance of type T (not function type) 
+      t: instance of type T (not function type) 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of T: instance of type T (not function type) 
+
Index: src/Tests/Expect-a/GccExtensions.txt
===================================================================
--- src/Tests/Expect-a/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,60 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c1: double _Complex 
+        Declaration of c2: double _Complex 
+        Declaration of i1: const signed int 
+        Declaration of i2: const signed int 
+        Declaration of i3: const signed int 
+        Declaration of ex: const signed int 
+        Declaration of f1: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of f2: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of s1: signed int 
+        Declaration of s2: signed int 
+        Declaration of t1: type-of expression           Name: s1
+
+        Declaration of t2: type-of expression           Name: s1
+
+        Declaration of v1: volatile signed int 
+        Declaration of v2: volatile signed int 
+        Declaration of a1: signed int 
+        Declaration of a2: const signed int 
+        Declaration of a3: static const signed int 
+        Declaration of a4: static const signed int 
+        Declaration of a5: static const signed int 
+        Declaration of a6: static const signed int 
+        Declaration of a7: static const signed int 
+        Declaration of p1: pointer to signed int 
+        Declaration of p2: pointer to signed int 
+        Declaration of struct s1
+        Declaration of struct s2
+            with members
+              i: signed int 
+
+        Declaration of struct s3
+            with members
+              i: signed int 
+
+        Declaration of x1: instance of struct s3 
+        Declaration of y1: instance of struct s3 
+        Declaration of struct s4
+            with members
+              i: signed int 
+
+        Declaration of x2: instance of struct s4 
+        Declaration of y2: instance of struct s4 
+        Declaration of m1: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of m2: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+        Declaration of m3: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Expect-a/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Expect-a/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,185 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Expect-a/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Expect-a/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,221 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f2: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f7: pointer to signed int 
+      f8: pointer to pointer to signed int 
+      f9: pointer to const pointer to signed int 
+      f10: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: open array of signed int 
+      f16: array of signed int with dimension of constant expression 10 signed int 
+      f17: open array of signed int 
+      f18: array of signed int with dimension of constant expression 10 signed int 
+      f19: open array of pointer to signed int 
+      f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f21: open array of pointer to pointer to signed int 
+      f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f23: open array of pointer to const pointer to signed int 
+      f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f25: open array of const pointer to const pointer to signed int 
+      f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f27: open array of pointer to signed int 
+      f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f29: open array of pointer to pointer to signed int 
+      f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f31: open array of pointer to const pointer to signed int 
+      f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f33: open array of const pointer to const pointer to signed int 
+      f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f35: open array of pointer to signed int 
+      f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f37: open array of pointer to pointer to signed int 
+      f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f39: open array of pointer to const pointer to signed int 
+      f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f41: open array of const pointer to const pointer to signed int 
+      f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f43: open array of array of signed int with dimension of constant expression 3 signed int 
+      f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f45: open array of array of signed int with dimension of constant expression 3 signed int 
+      f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f47: open array of array of signed int with dimension of constant expression 3 signed int 
+      f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f65: function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f66: function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f71: function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f72: function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f73: function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f74: function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const variable length array of signed int 
+      f83: const array of signed int with dimension of constant expression 3 signed int 
+      f84: static array of signed int with dimension of constant expression 3 signed int 
+      f85: const static array of signed int with dimension of constant expression 3 signed int 
+      f86: const variable length array of signed int 
+      f87: const array of signed int with dimension of constant expression 3 signed int 
+      f88: static array of signed int with dimension of constant expression 3 signed int 
+      f89: const static array of signed int with dimension of constant expression 3 signed int 
+      f90: const variable length array of pointer to signed int 
+      f91: const array of pointer to signed int with dimension of constant expression 3 signed int 
+      f92: static array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f93: const static array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f94: const static array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f95: const variable length array of pointer to signed int 
+      f96: const array of pointer to signed int with dimension of constant expression 3 signed int 
+      f97: static array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f98: const static array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f99: const static array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f100: const variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f102: static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f103: const static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f104: const variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f105: const array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f106: static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f107: const static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f108: const variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f110: static array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f111: const static array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f112: const static array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f113: const variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f114: const array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f115: static array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f116: const static array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f117: const static array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-a/InferParam.txt
===================================================================
--- src/Tests/Expect-a/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,165 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+g: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+i: function
+    with parameters
+      float 
+    returning 
+      void 
+
+h: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: g
+                ...to: 
+                    Name: a
+
+
+context has_f_and_j
+    with parameters
+      T: type
+      U: type
+
+    with members
+      f: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+      j: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type U (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+
+j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+k: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          instance of context has_f_and_j 
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+l: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: k
+                ...to: 
+                    Name: b
+
+
Index: src/Tests/Expect-a/Initialization.txt
===================================================================
--- src/Tests/Expect-a/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,139 @@
+x11: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x12: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x21: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x22: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y1: array of signed int with dimension of constant expression 20 signed int 
+y2: array of signed int with dimension of constant expression 20 signed int 
+struct __anonymous0
+    with members
+      w: tuple of types
+          signed int 
+
+
+a: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer:       Tuple:
+        constant expression 2 signed int 
+
+      designated by:         Name: w
+
+struct __anonymous1
+    with members
+      a: array of signed int with dimension of constant expression 3 signed int 
+      b: signed int 
+
+w: open array of instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: 0
+        Name: a
+      ]
+      Simple Initializer:         Name: 1
+
+    Simple Initializer:       Name: 1
+
+      designated by:         Name: 0
+        Name: b
+
+    Simple Initializer: constant expression 2 signed int 
+      designated by:         Name: 1
+        Name: a
+        Name: 0
+
+struct __anonymous3
+    with members
+      f1: signed int 
+      f2: signed int 
+      f3: signed int 
+      struct __anonymous2
+          with members
+            g1: signed int 
+            g2: signed int 
+            g3: signed int 
+
+      f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+
+v7: instance of struct __anonymous3 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: f1
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: f2
+
+    Compound initializer:        designated by: [        Name: f4
+constant expression 2 signed int       ]
+      Simple Initializer: constant expression 3 signed int 
+        designated by:           Name: g1
+
+      Simple Initializer:         Name: 0
+
+        designated by:           Name: g3
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: f4
+constant expression 3 signed int         Name: g3
+
+struct point
+    with members
+      x: signed int 
+      z: signed int 
+      struct __anonymous4
+          with members
+            y1: signed int 
+            y2: signed int 
+            y3: signed int 
+
+      y: instance of struct __anonymous4 
+      w: signed int 
+
+struct quintet
+    with members
+      v: signed int 
+      w: signed int 
+      x: signed int 
+      y: signed int 
+      z: signed int 
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p1: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+              designated by:                 Name: x
+
+        Declaration of p2: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+            Simple Initializer: constant expression 4 signed int 
+        Declaration of p3: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: x
+                Name: z
+
+            Compound initializer:                designated by: [                Name: y
+              ]
+              Simple Initializer: constant expression 6 signed int 
+                designated by:                   Name: y3
+                  Name: y1
+
+              Simple Initializer: constant expression 17 signed int 
+        Declaration of p4: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: w
+
+            Simple Initializer: constant expression 4 signed int 
+
Index: src/Tests/Expect-a/Initialization2.txt
===================================================================
--- src/Tests/Expect-a/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,142 @@
+a: signed int with initializer 
+  Simple Initializer: constant expression 3 signed int 
+struct __anonymous0
+    with members
+      x: signed int 
+      y: signed int 
+
+z: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Simple Initializer: constant expression 7 signed int 
+struct __anonymous1
+    with members
+      x: signed int 
+      y: signed int 
+
+z1: instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+        Name: y
+
+struct __anonymous2
+    with members
+      x: signed int 
+      y: signed int 
+
+z2: instance of struct __anonymous2 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: y
+
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: x
+
+struct __anonymous4
+    with members
+      x: signed int 
+      struct __anonymous3
+          with members
+            y1: signed int 
+            y2: signed int 
+
+      y: instance of struct __anonymous3 
+
+z3: instance of struct __anonymous4 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 4 signed int 
+        designated by:           Name: y1
+
+      Simple Initializer: constant expression 5 signed int 
+        designated by:           Name: y2
+
+struct __anonymous6
+    with members
+      x: signed int 
+      struct __anonymous5
+          with members
+            y1: signed int 
+            y2: signed int 
+
+      y: instance of struct __anonymous5 
+
+z3: instance of struct __anonymous6 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+struct __anonymous8
+    with members
+      x: signed int 
+      struct __anonymous7
+          with members
+            y1: signed int 
+            y2: signed int 
+
+      y: instance of struct __anonymous7 
+
+z3: instance of struct __anonymous8 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+    Compound initializer:  
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+struct __anonymous10
+    with members
+      x: signed int 
+      struct __anonymous9
+          with members
+            y1: signed int 
+            y2: signed int 
+
+      y: instance of struct __anonymous9 
+
+z3: instance of struct __anonymous10 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Compound initializer:  
+      Simple Initializer: constant expression 4 signed int 
+      Simple Initializer: constant expression 5 signed int 
+struct t
+    with members
+      a: signed int 
+      b: signed int 
+
+x: instance of struct t with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: b
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: a
+
+struct __anonymous11
+    with members
+      x: signed int 
+      y: signed int 
+
+z6: instance of struct __anonymous11 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 5 signed int 
+    Simple Initializer: constant expression 6 signed int 
+    Simple Initializer: constant expression 4 signed int 
Index: src/Tests/Expect-a/LabelledExit.txt
===================================================================
--- src/Tests/Expect-a/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,743 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+        Declaration of x: signed int 
+        Declaration of y: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: y
+                Name: 0
+
+                  CompoundStmt
+                          If on condition: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?==?
+                        ...to: 
+                            Name: x
+                            Name: y
+                        Name: 0
+
+                  to:
+                    signed int 
+              .... and branches: 
+                  CompoundStmt
+                                          Labels: {}
+                      For Statement
+                        initialization: 
+
+                        condition: 
+                          Cast of:
+                            Applying untyped: 
+                                Name: ?!=?
+                            ...to: 
+                                Applying untyped: 
+                                    Name: ?<?
+                                ...to: 
+                                    Name: i
+                                    Name: y
+                                Name: 0
+
+                          to:
+                            signed int 
+
+                        increment: 
+
+                        statement block: 
+                          CompoundStmt
+                                                          Expression Statement:
+                                Applying untyped: 
+                                    Name: ?+=?
+                                ...to: 
+                                    Address of:
+                                      Name: y
+                                    Name: 1
+
+                                                          If on condition: 
+                                  Cast of:
+                                    Applying untyped: 
+                                        Name: ?!=?
+                                    ...to: 
+                                        Applying untyped: 
+                                            Name: ?<?
+                                        ...to: 
+                                            Name: y
+constant expression 10 signed int                                         Name: 0
+
+                                  to:
+                                    signed int 
+                              .... and branches: 
+                                  Branch (Break)
+
+
+
+
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Name: y
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              Null Statement
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: x
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: y
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                                                  If on condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?==?
+                                    ...to: 
+                                        Name: y
+constant expression 3 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+                          .... and branches: 
+                              Branch (Break)
+
+
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: x
+                        Name: 1
+
+
+                  Labels: {A,}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {B,}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: i
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 10 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?+=?
+                      ...to: 
+                          Address of:
+                            Name: i
+                          Name: 1
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {C,}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Applying untyped: 
+                                    Name: ?=?
+                                ...to: 
+                                    Address of:
+                                      Name: i
+                                    Name: 0
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?<?
+                                    ...to: 
+                                        Name: i
+constant expression 10 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Applying untyped: 
+                                  Name: ?+=?
+                              ...to: 
+                                  Address of:
+                                    Name: i
+                                  Name: 1
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {D,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+                                  Branch (Continue)
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: 1
+
+                  Branch (Goto)
+
+                  Labels: {X,Y,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Continue)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  Branch (Break)
+
+
+
+                  Labels: {XX,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {YY,}
+                  For Statement
+                    initialization: 
+
+                    condition: 
+
+                    increment: 
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {ZZ,}
+                          For Statement
+                            initialization: 
+
+                            condition: 
+
+                            increment: 
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Expression Statement:
+                                    Applying untyped: 
+                                        Name: ?+=?
+                                    ...to: 
+                                        Address of:
+                                          Name: i
+                                        Name: 1
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+Declaration of i: signed int with initializer 
+              Simple Initializer:                 Name: 0
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: 0
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20,L21,L22,L23,L24,L25,L26,L27,L28,L29,L31,L32,L33,L34,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Switch on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Choose on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+                  Fall-through statement
+              Case constant expression 2 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  CompoundStmt
+            Declaration of array: static open array of pointer to void with initializer 
+              Compound initializer:  
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: foo
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: bar
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: hack
+
+                          Branch (Goto)
+
+
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: i
+constant expression 5 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  Branch (Break)
+
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?+=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 1
+
+
Index: src/Tests/Expect-a/Members.txt
===================================================================
--- src/Tests/Expect-a/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,186 @@
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+__builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+a: function
+    with parameters
+      char 
+    returning 
+      void 
+
+b: function
+    with parameters
+      signed int 
+    returning 
+      void 
+
+c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      void 
+
+d: function
+    with parameters
+      pointer to float 
+    returning 
+      void 
+
+struct a_struct
+    with members
+      a: signed int 
+      a: char 
+      a: float 
+
+union b_struct
+    with members
+      a: pointer to signed int 
+      a: pointer to char 
+      a: pointer to float 
+
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of the_struct: instance of struct a_struct 
+        Declaration of the_struct: instance of union b_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+
+struct c_struct
+    with members
+      signed int 
+      char 
+      float 
+
+union d_struct
+    with members
+      pointer to signed int 
+      pointer to char 
+      pointer to float 
+
+g: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of x: short unsigned int 
+        Declaration of x: instance of struct c_struct 
+        Declaration of x: instance of union d_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Name: x
+
+
+struct forward
+q: pointer to instance of struct forward 
+struct forward
+    with members
+      y: signed int 
+
+h: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Member Expression, with field: y            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: q
+
+
Index: src/Tests/Expect-a/Misc.txt
===================================================================
--- src/Tests/Expect-a/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      void 
+
+g: function
+    with parameters
+      unsigned int 
+    returning 
+      void 
+
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on:                   Name: a
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on: signed int 
+
+
Index: src/Tests/Expect-a/MiscError.txt
===================================================================
--- src/Tests/Expect-a/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,54 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      void 
+
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: b
+
+                  Name: a
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: b
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: b
+
+                  Name: b
+
+                  Expression Statement:
+            Sizeof Expression on:               Name: b
+
+
+
Index: src/Tests/Expect-a/NamedParmArg.txt
===================================================================
--- src/Tests/Expect-a/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,94 @@
+f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int 
+    returning 
+      signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 with designator:                  Name: i
+                Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int                 with designator:                  Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Applying untyped: 
+                    Name: f2
+                ...to: 
+                with designator:                  Tuple:
+                                          Name: j
+
+                                          Name: i
+
+
+
Index: src/Tests/Expect-a/NumericConstants.txt
===================================================================
--- src/Tests/Expect-a/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,88 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Name: 1
+
+                  Expression Statement:
+constant expression 21 signed int 
+                  Expression Statement:
+constant expression 2147483647 signed int 
+                  Expression Statement:
+constant expression 37LL long long signed int 
+                  Expression Statement:
+constant expression 45ull long long unsigned int 
+                  Expression Statement:
+constant expression 89llu long long unsigned int 
+                  Expression Statement:
+constant expression 99LLu long long unsigned int 
+                  Expression Statement:
+constant expression 56lu long unsigned int 
+                  Expression Statement:
+constant expression 88LLu long long unsigned int 
+                  Expression Statement:
+constant expression 0u unsigned int 
+                  Expression Statement:
+constant expression 0377 signed int 
+                  Expression Statement:
+constant expression 0377ul long unsigned int 
+                  Expression Statement:
+constant expression 0x1 signed int 
+                  Expression Statement:
+constant expression 0x1u unsigned int 
+                  Expression Statement:
+constant expression 0xabL long signed int 
+                  Expression Statement:
+constant expression 0x80000000 unsigned int 
+                  Expression Statement:
+constant expression 0xfff signed int 
+                  Expression Statement:
+constant expression 0xef3daa5c unsigned int 
+                  Expression Statement:
+constant expression 0x3LL long long signed int 
+                  Expression Statement:
+constant expression 3. double 
+                  Expression Statement:
+constant expression 3100. double 
+                  Expression Statement:
+constant expression 1000000. double 
+                  Expression Statement:
+constant expression 3.1 double 
+                  Expression Statement:
+constant expression 3.141592654L long double 
+                  Expression Statement:
+constant expression 123456.123456 double 
+                  Expression Statement:
+constant expression 3E1 double 
+                  Expression Statement:
+constant expression 3e1f float 
+                  Expression Statement:
+constant expression 3E11F float 
+                  Expression Statement:
+constant expression 3E11 double 
+                  Expression Statement:
+constant expression 3e+11 double 
+                  Expression Statement:
+constant expression 3E-11 double 
+                  Expression Statement:
+constant expression 3.0E1 double 
+                  Expression Statement:
+constant expression 3.0E1L long double 
+                  Expression Statement:
+constant expression 3.0e11 double 
+                  Expression Statement:
+constant expression 3.0E11l long double 
+                  Expression Statement:
+constant expression 3.0e+11l long double 
+                  Expression Statement:
+constant expression 3.0E-11 double 
+                  Expression Statement:
+constant expression 123456.123456E-16 double 
+                  Expression Statement:
+constant expression 0xff.ffp0 double 
+                  Expression Statement:
+constant expression 0x1.ffffffffp128l long double 
+
Index: src/Tests/Expect-a/OccursError.txt
===================================================================
--- src/Tests/Expect-a/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,54 @@
+f: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to function
+          with parameters
+            instance of type T (not function type) 
+            pointer to instance of type T (not function type) 
+          returning 
+            void 
+
+    returning 
+      void 
+
+g: forall
+      U: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      void 
+
+test: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: g
+
+
Index: src/Tests/Expect-a/Operators.txt
===================================================================
--- src/Tests/Expect-a/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,87 @@
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: number1
+    Name: number2
+
+
+
+?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+struct accumulator
+    with members
+      total: signed int 
+
+?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of a: char 
+        Declaration of b: char 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?()
+            ...to: 
+                Name: a
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+        Declaration of ?+?: instance of struct accumulator 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+
Index: src/Tests/Expect-a/Quad.txt
===================================================================
--- src/Tests/Expect-a/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+square: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: t
+    Name: t
+
+
+
+quad: forall
+      U: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: square
+...to: 
+    Applying untyped: 
+        Name: square
+    ...to: 
+        Name: u
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: quad
+            ...to: 
+constant expression 7 signed int 
+
Index: src/Tests/Expect-a/Rank2.txt
===================================================================
--- src/Tests/Expect-a/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,117 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+a: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              void 
+
+        Declaration of g: function
+            with parameters
+              p: forall
+                    U: type
+                      with assertions
+                        ?=?: function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    void 
+
+            returning 
+              void 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: f
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of h: function
+            with parameters
+              null: pointer to signed int 
+            returning 
+              void 
+
+        Declaration of id: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+        Declaration of 0: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: id
+                ...to: 
+                    Applying untyped: 
+                        Name: id
+                    ...to: 
+                        Applying untyped: 
+                            Name: id
+                        ...to: 
+                            Name: 0
+
+
Index: src/Tests/Expect-a/Scope.txt
===================================================================
--- src/Tests/Expect-a/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,157 @@
+x: signed int 
+y: typedef for double 
+t: typedef for float 
+z: instance of type y (not function type) 
+struct __anonymous0
+    with members
+      a: signed int 
+      b: double 
+
+u: type for instance of struct __anonymous0 
+f: function
+    with parameters
+      y: signed int 
+    returning 
+      signed int 
+
+q: instance of type y (not function type) 
+w: function
+    with parameters
+      y: instance of type y (not function type) 
+      v: instance of type u (not function type) 
+    returning 
+      instance of type y (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of x: type
+          with assertions
+            t: function
+                with parameters
+                  instance of type u (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+
+        Declaration of u: instance of type u (not function type) with initializer 
+          Simple Initializer:             Name: y
+
+        Declaration of z: instance of type x (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: t
+            ...to: 
+                Name: u
+
+
+p: instance of type y (not function type) 
+context has_u
+    with parameters
+      z: type
+
+    with members
+      u: function
+          with parameters
+            instance of type z (not function type) 
+          returning 
+            instance of type z (not function type) 
+
+
+q: forall
+      t: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          instance of context has_u 
+            with parameters
+              instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      instance of type y (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of y: instance of type t (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: u
+            ...to: 
+                Name: the_t
+
+
+f: function
+    with parameters
+      p: instance of type y (not function type) 
+    returning 
+      instance of type t (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+        Declaration of x: typedef for char 
+                  CompoundStmt
+            Declaration of y: instance of type x (not function type) 
+            Declaration of z: typedef for instance of type x (not function type) 
+                          CompoundStmt
+                Declaration of x: instance of type z (not function type) 
+                Declaration of y: typedef for instance of type z (not function type) 
+                Declaration of z: instance of type y (not function type) with initializer 
+                  Simple Initializer:                     Name: x
+
+
+            Declaration of x: instance of type z (not function type) with initializer 
+              Simple Initializer:                 Name: y
+
+
+        Declaration of q: instance of type x (not function type) with initializer 
+          Simple Initializer:             Name: y
+
+
+g: function
+    with parameters
+      void 
+    returning 
+      instance of type t (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of x: typedef for char 
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: some_func
+                    ...to: 
+
+            and handlers: 
+              Catch Statement
+              ... catching
+x: instance of type x (not function type) 
+
+        Declaration of z: instance of type x (not function type) 
+
+q: function
+      accepting unspecified arguments
+    returning 
+      instance of type y (not function type) 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+                  Switch on condition: Name: i
+
+              Case Name: 0
+
+                  Return Statement, returning: Name: q
+
+              Default 
+                  Return Statement, returning: Name: i
+
+
+
Index: src/Tests/Expect-a/ScopeErrors.txt
===================================================================
--- src/Tests/Expect-a/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,48 @@
+thisIsAnError: signed int 
+thisIsAnError: signed int 
+thisIsNotAnError: signed int 
+thisIsNotAnError: float 
+thisIsAlsoNotAnError: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of thisIsNotAnError: signed int 
+
+thisIsAlsoNotAnError: function
+    with parameters
+      x: double 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+thisIsStillNotAnError: function
+    with parameters
+      double 
+    returning 
+      double 
+
+thisIsStillNotAnError: function
+    with parameters
+      double 
+    returning 
+      double 
+
+butThisIsAnError: function
+    with parameters
+      double 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+
+butThisIsAnError: function
+    with parameters
+      double 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-a/ShortCircuit.txt
===================================================================
--- src/Tests/Expect-a/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,105 @@
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+0: signed int 
+g: function
+    with parameters
+      float 
+    returning 
+      void 
+
+g: function
+    with parameters
+      signed int 
+    returning 
+      void 
+
+f: function
+    with parameters
+      a: signed int 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+        Declaration of c: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Name: a
+                        Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Name: b
+                Second alternative:
+                  Name: c
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: c
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: b
+      Name: 0
+
+to:
+  signed int 
+
+
+
Index: src/Tests/Expect-a/Statement.txt
===================================================================
--- src/Tests/Expect-a/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,79 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+0: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of struct __anonymous0
+            with members
+              b: signed int 
+
+        Declaration of a: instance of struct __anonymous0 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: a
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Name: a
+                            Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                        Declaration of b: pointer to signed int 
+                                                  Labels: {}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Name: b
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Name: a
+                                    Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Name: b
+
+                            statement block: 
+                              CompoundStmt
+
+
+
+
+
Index: src/Tests/Expect-a/StructMember.txt
===================================================================
--- src/Tests/Expect-a/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,71 @@
+T: typedef for signed int 
+struct S
+    with members
+      m1: signed int with bitfield width constant expression 3 signed int 
+      m2: signed int with bitfield width constant expression 4 signed int 
+      signed int with bitfield width constant expression 2 signed int 
+      signed int with bitfield width constant expression 3 signed int 
+      signed int with bitfield width constant expression 4 signed int 
+      m3: signed int 
+      m4: signed int 
+      m5: signed int 
+      m6: signed int 
+      m7: pointer to signed int 
+      m8: pointer to signed int 
+      m9: pointer to signed int 
+      m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      T: instance of type T (not function type) 
+      T: instance of type T (not function type) 
+      m12: pointer to signed int 
+      m13: pointer to signed int 
+      m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      instance of type T (not function type) 
+
+s: instance of struct S 
+union U
+    with members
+      m1: array of signed int with dimension of constant expression 5 signed int 
+      m2: array of signed int with dimension of constant expression 5 signed int 
+      m3: pointer to signed int 
+      m4: pointer to signed int 
+
+u: instance of union U 
Index: src/Tests/Expect-a/Subrange.txt
===================================================================
--- src/Tests/Expect-a/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,365 @@
+context ordered
+    with parameters
+      T: type
+
+    with members
+      ?<?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+      ?<=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+
+subrange: type for instance of type base_t (not function type) 
+  with parameters
+    base_t: type
+      with assertions
+        instance of context ordered 
+          with parameters
+            instance of type base_t (not function type) 
+
+
+
+day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+lcase: instance of type subrange (not function type) 
+  with parameters
+    char 
+    constant expression 'a' char 
+    constant expression 'z' char 
+
+foo: instance of type subrange (not function type) 
+  with parameters
+    signed int 
+          Name: 0
+
+          Applying untyped: 
+          Name: ?&?
+      ...to: 
+          Applying untyped: 
+              Name: rand
+          ...to: 
+constant expression 0xF signed int 
+
+lbound: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: low
+
+
+
+hbound: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: high
+
+
+
+lday: unsigned int with initializer 
+  Simple Initializer:     Applying untyped: 
+        Name: lbound
+    ...to: 
+        Name: day_of_month
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          instance of context ordered 
+            with parameters
+              instance of type T (not function type) 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+      source: instance of type T (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: high
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          instance of context ordered 
+            with parameters
+              instance of type T (not function type) 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+      source: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: s_low
+
+                      Name: s_high
+
+
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: s_low
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: s_high
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
Index: src/Tests/Expect-a/Switch.txt
===================================================================
--- src/Tests/Expect-a/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+                  Switch on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: constant expression 3 signed int 
+              Default 
+              Case constant expression 2 signed int 
+              Case constant expression 3 signed int 
+                  Expression Statement:
+constant expression 3 signed int 
+                  Switch on condition: Name: i
+
+
+                  Switch on condition: Name: i
+
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+  constant expression 7 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Fall-through statement
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+                  Fall-through statement
+
+
Index: src/Tests/Expect-a/Tuple.txt
===================================================================
--- src/Tests/Expect-a/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,561 @@
+f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: open array of char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+struct inner
+    with members
+      f2: signed int 
+      f3: signed int 
+
+struct outer
+    with members
+      f1: signed int 
+      i: instance of struct inner 
+      f4: double 
+
+s: instance of struct outer 
+sp: pointer to instance of struct outer 
+t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+t2: static const tuple of types
+    signed int 
+    const signed int 
+
+t3: static const tuple of types
+    signed int 
+    const signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      rc: signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      signed int 
+
+f1: function
+    with parameters
+      w: signed int 
+    returning 
+      x: short signed int 
+      y: unsigned int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: y
+
+                                          Name: x
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: x
+
+                                                  Name: y
+
+                    Tuple:
+                                              Name: w
+
+                      constant expression 23 signed int 
+
+
+g1: function
+    returning 
+      r: tuple of types
+          signed int 
+          char 
+          long signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+        Declaration of x: short signed int 
+        Declaration of p: short signed int 
+        Declaration of y: unsigned int 
+        Declaration of z: tuple of types
+            signed int 
+            signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Tuple:
+                                      Name: p
+
+                                      Applying untyped: 
+                        Name: f
+                    ...to: 
+constant expression 17 signed int 
+                  constant expression 3 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Cast of:
+                  Tuple:
+                                          Name: p
+
+                                          Applying untyped: 
+                          Name: f
+                      ...to: 
+constant expression 17 signed int 
+                    constant expression 3 signed int 
+
+                to:
+                  short signed int 
+                  unsigned int 
+                  tuple of types
+                      signed int 
+                      signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: r
+                Tuple:
+                                      Name: x
+
+                                      Name: y
+
+                                      Name: z
+
+
+
+main: C function
+    with parameters
+      argc: signed int 
+      argv: pointer to pointer to char 
+    returning 
+      rc: signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of b: signed int 
+        Declaration of c: signed int 
+        Declaration of d: signed int 
+        Declaration of t: instance of struct outer with initializer 
+          Compound initializer:  
+            Simple Initializer:               Tuple:
+                                  Name: 1
+
+                constant expression 7.0 double 
+
+              designated by:                 Name: f1
+                Name: f4
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: t1
+constant expression 3 signed int 
+                  Expression Statement:
+            Tuple:
+
+                  Expression Statement:
+            Tuple:
+              constant expression 3 signed int 
+              constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Tuple:
+                  constant expression 4.6 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Tuple:
+                      constant expression 3 signed int 
+                      constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                                          Tuple:
+                                                  Name: c
+
+
+                Tuple:
+                  constant expression 2 signed int 
+                                      Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?>?
+                        ...to: 
+constant expression 3 signed int constant expression 4 signed int                         Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Tuple:
+                                          Name: b
+
+                    constant expression 6 signed int 
+                Second alternative:
+                  Tuple:
+                    constant expression 7 signed int 
+                    constant expression 8 signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Tuple:
+                                      Name: a
+
+                                      Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t2
+                    Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: d
+                        Applying untyped: 
+                            Name: ?+=?
+                        ...to: 
+                            Address of:
+                              Name: c
+                            Name: 1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Tuple:
+                                              Name: c
+
+                                              Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: t2
+                        Tuple:
+                                                      Name: c
+
+                                                      Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                        constant expression 3 signed int 
+                        constant expression 4 signed int 
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Tuple:
+                            constant expression 3 signed int 
+                            constant expression 4 signed int 
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: t1
+                            Tuple:
+                              constant expression 3 signed int 
+                              constant expression 4 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Tuple:
+                  constant expression 11 signed int 
+                  constant expression 12 signed int 
+                  constant expression 13 signed int 
+                  constant expression 3.14159 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: sp
+                Name: sp
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: printf
+            ...to: 
+constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int                 Name: s
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: rc
+                Name: 0
+
+
Index: src/Tests/Expect-a/TypeGenerator.txt
===================================================================
--- src/Tests/Expect-a/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,157 @@
+context addable
+    with parameters
+      T: type
+
+    with members
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+struct __anonymous0
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+
+List1: type for pointer to instance of struct __anonymous0 
+  with parameters
+    T: type
+      with assertions
+        instance of context addable 
+          with parameters
+            instance of type T (not function type) 
+
+
+
+  with assertions
+    instance of context addable 
+      with parameters
+        instance of type T (not function type) 
+
+
+li: instance of type List1 (not function type) 
+  with parameters
+    signed int 
+
+f: function
+    with parameters
+      g: pointer to function
+          with parameters
+            signed int 
+          returning 
+            instance of type List1 (not function type) 
+              with parameters
+                signed int 
+
+
+    returning 
+      signed int 
+
+h: function
+    with parameters
+      p: pointer to instance of type List1 (not function type) 
+        with parameters
+          signed int 
+
+    returning 
+      signed int 
+
+struct S1
+    with parameters
+      T: type
+
+struct S1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+v1: instance of struct S1 
+  with parameters
+    signed int 
+
+p: pointer to instance of struct S1 
+  with parameters
+    signed int 
+
+struct S2
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+v2: instance of struct S2 
+  with parameters
+    signed int 
+
+struct __anonymous1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+v2: instance of struct __anonymous1 
+  with parameters
+    signed int 
+
+struct node
+    with parameters
+      T: type
+        with assertions
+          instance of context addable 
+            with parameters
+              instance of type T (not function type) 
+
+
+
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+List: type for pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+  with parameters
+    T: type
+
+my_list: instance of type List (not function type) 
+  with parameters
+    signed int 
+
+Complex: type
+  with assertions
+    instance of context addable 
+      with parameters
+        instance of type Complex (not function type) 
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Cast of:
+              Name: my_list
+
+            to:
+              instance of struct node 
+                with parameters
+                  signed int 
+
+
+
Index: src/Tests/Expect-a/Typedef.txt
===================================================================
--- src/Tests/Expect-a/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,104 @@
+T: typedef for signed int 
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of T: function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: T
+            ...to: 
+constant expression 3 signed int 
+
+struct __anonymous0
+    with members
+      T: instance of type T (not function type) 
+
+fred: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+a: typedef for pointer to function
+    with parameters
+      signed int 
+      char 
+    returning 
+      signed int 
+
+b: instance of type a (not function type) 
+g: function
+    with parameters
+      void 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: double 
+
+c: instance of type a (not function type) 
+x: typedef for type-of expression constant expression 3 signed int 
+y: typedef for type-of expression constant expression 3 signed int 
+p: instance of type x (not function type) 
+q: instance of type y (not function type) 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of z: typedef for type-of expression constant expression 3 signed int 
+        Declaration of p: typedef for type-of expression constant expression 3 signed int 
+        Declaration of w: instance of type z (not function type) 
+        Declaration of x: instance of type p (not function type) 
+
+arrayOf10Pointers: typedef for array of pointer to signed int with dimension of constant expression 10 signed int 
+array: instance of type arrayOf10Pointers (not function type) 
+constantPointer: typedef for const pointer to signed int 
+funcPtr: typedef for pointer to function
+    with parameters
+      open array of signed int 
+    returning 
+      signed int 
+
+funcProto: typedef for function
+    with parameters
+      open array of signed int 
+    returning 
+      signed int 
+
+tupleType: typedef for tuple of types
+    signed int 
+    signed int 
+
+tupleTypePtr: typedef for pointer to tuple of types
+    signed int 
+    signed int 
+
+a: typedef for pointer to signed int 
+b: typedef for pointer to signed int 
+f: typedef for function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+g: typedef for function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+t: typedef for tuple of types
+    pointer to static array of signed int with dimension of constant expression 10 signed int 
+
+f: typedef for function
+    returning 
+      x: pointer to static array of signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Expect-a/TypedefDeclarator.txt
===================================================================
--- src/Tests/Expect-a/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,275 @@
+f0: typedef for signed int 
+f1: typedef for signed int 
+f2: typedef for signed int 
+f3: typedef for signed int 
+f4: typedef for signed int 
+f5: typedef for signed int 
+f6: typedef for signed int 
+f7: typedef for signed int 
+f8: typedef for signed int 
+f9: typedef for signed int 
+f10: typedef for signed int 
+f11: typedef for signed int 
+f12: typedef for signed int 
+f13: typedef for signed int 
+f14: typedef for signed int 
+f15: typedef for signed int 
+f16: typedef for signed int 
+f17: typedef for signed int 
+f18: typedef for signed int 
+f19: typedef for signed int 
+f20: typedef for signed int 
+f21: typedef for signed int 
+f22: typedef for signed int 
+f23: typedef for signed int 
+f24: typedef for signed int 
+f25: typedef for signed int 
+f26: typedef for signed int 
+f27: typedef for signed int 
+f28: typedef for signed int 
+f29: typedef for signed int 
+f30: typedef for signed int 
+f31: typedef for signed int 
+f32: typedef for signed int 
+f33: typedef for signed int 
+f34: typedef for signed int 
+f35: typedef for signed int 
+f36: typedef for signed int 
+f37: typedef for signed int 
+f38: typedef for signed int 
+f39: typedef for signed int 
+f40: typedef for signed int 
+f41: typedef for signed int 
+f42: typedef for signed int 
+f43: typedef for signed int 
+f44: typedef for signed int 
+f45: typedef for signed int 
+f46: typedef for signed int 
+f47: typedef for signed int 
+f48: typedef for signed int 
+f49: typedef for signed int 
+f50: typedef for signed int 
+f51: typedef for signed int 
+f52: typedef for signed int 
+f53: typedef for signed int 
+f54: typedef for signed int 
+f55: typedef for signed int 
+f56: typedef for signed int 
+f57: typedef for signed int 
+f58: typedef for signed int 
+f59: typedef for signed int 
+f60: typedef for signed int 
+f61: typedef for signed int 
+f62: typedef for signed int 
+f63: typedef for signed int 
+f64: typedef for signed int 
+f65: typedef for signed int 
+f66: typedef for signed int 
+f67: typedef for signed int 
+f68: typedef for signed int 
+f69: typedef for signed int 
+f70: typedef for signed int 
+f71: typedef for signed int 
+f72: typedef for signed int 
+f73: typedef for signed int 
+f74: typedef for signed int 
+f75: typedef for signed int 
+f76: typedef for signed int 
+f77: typedef for signed int 
+f78: typedef for signed int 
+f79: typedef for signed int 
+f80: typedef for signed int 
+f81: typedef for signed int 
+f82: typedef for signed int 
+f83: typedef for signed int 
+f84: typedef for signed int 
+f85: typedef for signed int 
+f86: typedef for signed int 
+f87: typedef for signed int 
+f88: typedef for signed int 
+f89: typedef for signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Expect-a/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Expect-a/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,382 @@
+f0: typedef for signed int 
+f1: typedef for signed int 
+f2: typedef for signed int 
+f3: typedef for signed int 
+f4: typedef for signed int 
+f5: typedef for signed int 
+f6: typedef for signed int 
+f7: typedef for signed int 
+f8: typedef for signed int 
+f9: typedef for signed int 
+f10: typedef for signed int 
+f11: typedef for signed int 
+f12: typedef for signed int 
+f13: typedef for signed int 
+f14: typedef for signed int 
+f15: typedef for signed int 
+f16: typedef for signed int 
+f17: typedef for signed int 
+f18: typedef for signed int 
+f19: typedef for signed int 
+f20: typedef for signed int 
+f21: typedef for signed int 
+f22: typedef for signed int 
+f23: typedef for signed int 
+f24: typedef for signed int 
+f25: typedef for signed int 
+f26: typedef for signed int 
+f27: typedef for signed int 
+f28: typedef for signed int 
+f29: typedef for signed int 
+f30: typedef for signed int 
+f31: typedef for signed int 
+f32: typedef for signed int 
+f33: typedef for signed int 
+f34: typedef for signed int 
+f35: typedef for signed int 
+f36: typedef for signed int 
+f37: typedef for signed int 
+f38: typedef for signed int 
+f39: typedef for signed int 
+f40: typedef for signed int 
+f41: typedef for signed int 
+f42: typedef for signed int 
+f43: typedef for signed int 
+f44: typedef for signed int 
+f45: typedef for signed int 
+f46: typedef for signed int 
+f47: typedef for signed int 
+f48: typedef for signed int 
+f49: typedef for signed int 
+f50: typedef for signed int 
+f51: typedef for signed int 
+f52: typedef for signed int 
+f53: typedef for signed int 
+f54: typedef for signed int 
+f55: typedef for signed int 
+f56: typedef for signed int 
+f57: typedef for signed int 
+f58: typedef for signed int 
+f59: typedef for signed int 
+f60: typedef for signed int 
+f61: typedef for signed int 
+f62: typedef for signed int 
+f63: typedef for signed int 
+f64: typedef for signed int 
+f65: typedef for signed int 
+f66: typedef for signed int 
+f67: typedef for signed int 
+f68: typedef for signed int 
+f69: typedef for signed int 
+f70: typedef for signed int 
+f71: typedef for signed int 
+f72: typedef for signed int 
+f73: typedef for signed int 
+f74: typedef for signed int 
+f75: typedef for signed int 
+f76: typedef for signed int 
+f77: typedef for signed int 
+f78: typedef for signed int 
+f79: typedef for signed int 
+f80: typedef for signed int 
+f81: typedef for signed int 
+f82: typedef for signed int 
+f83: typedef for signed int 
+f84: typedef for signed int 
+f85: typedef for signed int 
+f86: typedef for signed int 
+f87: typedef for signed int 
+f88: typedef for signed int 
+f89: typedef for signed int 
+f90: typedef for signed int 
+f91: typedef for signed int 
+f92: typedef for signed int 
+f93: typedef for signed int 
+f94: typedef for signed int 
+f95: typedef for signed int 
+f96: typedef for signed int 
+f97: typedef for signed int 
+f98: typedef for signed int 
+f99: typedef for signed int 
+f100: typedef for signed int 
+f101: typedef for signed int 
+f102: typedef for signed int 
+f103: typedef for signed int 
+f104: typedef for signed int 
+f105: typedef for signed int 
+f106: typedef for signed int 
+f107: typedef for signed int 
+f108: typedef for signed int 
+f109: typedef for signed int 
+f110: typedef for signed int 
+f111: typedef for signed int 
+f112: typedef for signed int 
+f113: typedef for signed int 
+f114: typedef for signed int 
+f115: typedef for signed int 
+f116: typedef for signed int 
+f117: typedef for signed int 
+f118: typedef for signed int 
+f119: typedef for signed int 
+fred: function
+    with parameters
+      f1: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: open array of signed int 
+      f16: array of signed int with dimension of constant expression 10 signed int 
+      f19: open array of pointer to signed int 
+      f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f21: open array of pointer to pointer to signed int 
+      f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f23: open array of pointer to const pointer to signed int 
+      f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f25: open array of const pointer to const pointer to signed int 
+      f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f35: open array of pointer to signed int 
+      f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f37: open array of pointer to pointer to signed int 
+      f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f39: open array of pointer to const pointer to signed int 
+      f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f41: open array of const pointer to const pointer to signed int 
+      f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f43: open array of array of signed int with dimension of constant expression 3 signed int 
+      f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f65: function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const variable length array of signed int 
+      f83: const array of signed int with dimension of constant expression 3 signed int 
+      f84: static array of signed int with dimension of constant expression 3 signed int 
+      f85: const static array of signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of instance of type f86 (not function type) 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const array of instance of type f87 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            static array of instance of type f88 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const static array of instance of type f89 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f90: const variable length array of pointer to signed int 
+      f91: const array of pointer to signed int with dimension of constant expression 3 signed int 
+      f92: static array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f93: const static array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f94: const static array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of instance of type f95 (not function type) 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            const array of instance of type f96 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            static array of instance of type f97 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      function
+          with parameters
+            const static array of instance of type f98 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      function
+          with parameters
+            const static array of instance of type f99 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f100: const variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f102: static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f103: const static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of array of instance of type f104 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const array of array of instance of type f105 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            static array of array of instance of type f106 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const static array of array of instance of type f107 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f108: const variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f110: static array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f111: const static array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f112: const static array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of array of instance of type f113 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            const array of array of instance of type f114 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            static array of array of instance of type f115 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      function
+          with parameters
+            const static array of array of instance of type f116 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      function
+          with parameters
+            const static array of array of instance of type f117 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-a/Typeof.txt
===================================================================
--- src/Tests/Expect-a/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of v1: pointer to signed int 
+        Declaration of v2: type-of expression           Name: v1
+
+        Declaration of v3: array of type-of expression           Applying untyped: 
+              Name: *?
+          ...to: 
+              Name: v1
+with dimension of constant expression 4 signed int 
+        Declaration of v4: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v5: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v6: pointer to signed int 
+        Declaration of v7: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+        Declaration of v8: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+
Index: src/Tests/Expect-a/VariableDeclarator.txt
===================================================================
--- src/Tests/Expect-a/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,253 @@
+f1: signed int 
+f2: signed int 
+f3: pointer to signed int 
+f4: pointer to pointer to signed int 
+f5: pointer to const pointer to signed int 
+f6: const pointer to const pointer to signed int 
+f7: pointer to signed int 
+f8: pointer to pointer to signed int 
+f9: pointer to const pointer to signed int 
+f10: const pointer to const pointer to signed int 
+f11: pointer to signed int 
+f12: pointer to pointer to signed int 
+f13: pointer to const pointer to signed int 
+f14: const pointer to const pointer to signed int 
+f15: open array of signed int 
+f16: array of signed int with dimension of constant expression 10 signed int 
+f17: open array of signed int 
+f18: array of signed int with dimension of constant expression 10 signed int 
+f19: open array of pointer to signed int 
+f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+f21: open array of pointer to pointer to signed int 
+f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f23: open array of pointer to const pointer to signed int 
+f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f25: open array of const pointer to const pointer to signed int 
+f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f27: open array of pointer to signed int 
+f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+f29: open array of pointer to pointer to signed int 
+f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f31: open array of pointer to const pointer to signed int 
+f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f33: open array of const pointer to const pointer to signed int 
+f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f35: pointer to open array of signed int 
+f36: pointer to array of signed int with dimension of constant expression 10 signed int 
+f37: pointer to pointer to open array of signed int 
+f38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+f39: pointer to const pointer to open array of signed int 
+f40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f41: const pointer to const pointer to open array of signed int 
+f42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f43: open array of array of signed int with dimension of constant expression 3 signed int 
+f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f45: open array of array of signed int with dimension of constant expression 3 signed int 
+f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f47: open array of array of signed int with dimension of constant expression 3 signed int 
+f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f69: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f71: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f72: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f73: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f74: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f75: pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f76: pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f77: pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f78: const pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f79: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f80: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f81: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      const pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+cf3: pointer to signed int 
+cf4: pointer to pointer to signed int 
+cf5: pointer to const pointer to signed int 
+cf6: const pointer to const pointer to signed int 
+cf15: open array of signed int 
+cf16: array of signed int with dimension of constant expression 10 signed int 
+cf19: open array of pointer to signed int 
+cf20: array of pointer to signed int with dimension of constant expression 10 signed int 
+cf21: open array of pointer to pointer to signed int 
+cf22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+cf23: open array of pointer to const pointer to signed int 
+cf24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf25: open array of const pointer to const pointer to signed int 
+cf26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf35: pointer to open array of signed int 
+cf36: pointer to array of signed int with dimension of constant expression 10 signed int 
+cf37: pointer to pointer to open array of signed int 
+cf38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+cf39: pointer to const pointer to open array of signed int 
+cf40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf41: const pointer to const pointer to open array of signed int 
+cf42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf43: open array of array of signed int with dimension of constant expression 3 signed int 
+cf44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+cf50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+cf52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf53: open array of array of const pointer to signed int with dimension of constant expression 3 signed int 
+cf54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+cf56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+cf68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+cf69: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to pointer to signed int 
+
+cf70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+v3: pointer to open array of pointer to open array of pointer to function
+    with parameters
+      pointer to open array of pointer to open array of signed int 
+      pointer to open array of pointer to open array of signed int 
+    returning 
+      pointer to open array of pointer to open array of signed int 
+
Index: src/Tests/Expect-a/gcc900407-1.txt
===================================================================
--- src/Tests/Expect-a/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,71 @@
+foo: function
+    with parameters
+      a: signed int 
+      b: signed int 
+      p: pointer to signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: a
+constant expression 0x1000 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: c
+                Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: b
+constant expression 0xffff0000 unsigned int 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?+?
+                        ...to: 
+                            Name: b
+constant expression 0xffff0000 unsigned int constant expression 2 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?++
+                ...to: 
+                    Address of:
+                      Name: c
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Name: c
+
+
Index: src/Tests/Expect-a/gcc900516-1.txt
===================================================================
--- src/Tests/Expect-a/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+f: function
+    with parameters
+      c: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: !?
+...to: 
+    Conditional expression on: 
+      Cast of:
+        Applying untyped: 
+            Name: ?!=?
+        ...to: 
+            Name: c
+            Name: 0
+
+      to:
+        signed int 
+    First alternative:
+constant expression 2.0 double     Second alternative:
+constant expression 1.0 double 
+
+
+
Index: src/Tests/Expect-a/gcc920301-1.txt
===================================================================
--- src/Tests/Expect-a/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+f: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of t: static open array of pointer to void 
+                  Null Statement
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: static array of unsigned int with dimension of constant expression 5 signed int 
+
Index: src/Tests/Expect-a/gcc920409-1.txt
===================================================================
--- src/Tests/Expect-a/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: y
+constant expression 0.0 double                     Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: y
+            Second alternative:
+              Applying untyped: 
+                  Name: ?-?
+              ...to: 
+                  Name: y
+                  Name: 1
+
+
+
Index: src/Tests/Expect-a/gcc920409-2.txt
===================================================================
--- src/Tests/Expect-a/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,90 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of x1: signed int 
+        Declaration of x2: signed int 
+        Declaration of v: double 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Cast of:
+                          Applying untyped: 
+                              Name: ?-?
+                          ...to: 
+                              Name: x1
+                              Name: x2
+
+                        to:
+                          long signed int 
+                        Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Return Statement, returning: Applying untyped: 
+    Name: -?
+...to: 
+constant expression 1.0 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: t
+                ...to: 
+                    Name: v
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: y
+                ...to: 
+                    Name: 1
+                    Conditional expression on: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: v
+constant expression 0.0 double                             Name: 0
+
+                      to:
+                        signed int 
+                    First alternative:
+                      Cast of:
+                        Name: v
+
+                      to:
+                        signed int 
+                    Second alternative:
+                      Applying untyped: 
+                          Name: ?-?
+                      ...to: 
+                          Cast of:
+                            Name: v
+
+                          to:
+                            signed int 
+                          Name: 1
+
+
+
Index: src/Tests/Expect-a/gcc920410-2.txt
===================================================================
--- src/Tests/Expect-a/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+joe: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of j: signed int 
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+
+
Index: src/Tests/Expect-a/gcc920501-1.txt
===================================================================
--- src/Tests/Expect-a/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+a: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of b: open array of pointer to pointer to signed int with initializer 
+          Compound initializer:  
+            Simple Initializer:               Applying untyped: 
+                  Name: LabAddress
+              ...to: 
+                  Name: c
+
+                  Null Statement
+
+
Index: src/Tests/Expect-a/gcc920501-11.txt
===================================================================
--- src/Tests/Expect-a/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Expect-a/gcc920501-19.txt
===================================================================
--- src/Tests/Expect-a/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+x: long long signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+
Index: src/Tests/Expect-a/report
===================================================================
--- src/Tests/Expect-a/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-a/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Expect-e/Abstype.txt
===================================================================
--- src/Tests/Expect-e/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+to:
+  pointer to pointer to signed int 
+
Index: src/Tests/Expect-e/Array.txt
===================================================================
--- src/Tests/Expect-e/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,96 @@
+a1: open array of signed int 
+a2: variable length array of signed int 
+a4: array of double with dimension of   Cast of:
+constant expression 3.0 double 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+m1: open array of array of signed int with dimension of constant expression 3 signed int 
+m2: variable length array of variable length array of signed int 
+m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a1: open array of signed int 
+        Declaration of a2: variable length array of signed int 
+        Declaration of a4: array of signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of T: array of signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+
+mary: function
+    with parameters
+      T: pointer to array of constant expression 3 signed int signed int 
+      p1: const pointer to array of constant expression 3 signed int signed int 
+      p2: pointer to static array of constant expression 3 signed int signed int 
+      p3: const pointer to static array of constant expression 3 signed int signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+tom: function
+      accepting unspecified arguments
+    returning 
+      pointer to array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+jane: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+          with parameters
+            T: pointer to array of constant expression 3 signed int signed int 
+            p1: const pointer to array of constant expression 3 signed int signed int 
+            p2: pointer to static array of constant expression 3 signed int signed int 
+            p3: const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+int __a1__A0i[];
+int __a2__A0i[*];
+double __a4__A0d[((long unsigned int )3.0)];
+int __m1__A0A0i[][3];
+int __m2__A0A0i[*][*];
+int __m4__A0A0i[((long unsigned int )3)][3];
+int __fred__Fi__(){
+    int __a1__A0i[];
+    int __a2__A0i[*];
+    int __a4__A0i[((long unsigned int )3)];
+    int __T__A0i[((long unsigned int )3)];
+}
+int __mary__Fi_PiCPiPiCPi_(int __T__Pi[3], int __p1__CPi[const 3], int __p2__Pi[static 3], int __p3__CPi[static const 3]){
+}
+int (*__tom__FPA0i__())[3]{
+}
+int (*__jane__FPFi_PiCPiPiCPi___())(int __T__Pi[3], int __p1__CPi[const 3], int __p2__Pi[static 3], int __p3__CPi[static const 3]){
+}
Index: src/Tests/Expect-e/AsmName.txt
===================================================================
--- src/Tests/Expect-e/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+x: auto signed int 
+fred: function
+    with parameters
+      x: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: static signed int 
+        Declaration of z: static pointer to signed int 
+
+extern int __x__i;
+int __fred__Fi_i_(int __x__i){
+    static int __y__i;
+    static int *__z__Pi;
+}
Index: src/Tests/Expect-e/Attributes.txt
===================================================================
--- src/Tests/Expect-e/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Expect-e/Cast.txt
===================================================================
--- src/Tests/Expect-e/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,85 @@
+f: char 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: char 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Variable Expression: f: char 
+
+            to:
+              signed int 
+            with environment:
+              Types:
+              Non-types:
+
+        Declaration of f: short signed int 
+                  Expression Statement:
+            Cast of:
+              Variable Expression: f: short signed int 
+
+            to:
+              signed int 
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Cast of:
+              Variable Expression: f: function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Cast of:
+              Tuple:
+                                  Variable Expression: f: short signed int 
+
+                                  Variable Expression: f: double 
+
+                                  Variable Expression: f: function
+                        accepting unspecified arguments
+                      returning 
+                        nothing 
+
+
+
+            to:
+              long signed int 
+              long double 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+char __f__c;
+void __f__F__(){
+    char __f__c;
+    double __f__d;
+    ((int )__f__c);
+    short __f__s;
+    ((int )__f__s);
+    ((void (*)())__f__F__);
+    ((long int ));
+}
Index: src/Tests/Expect-e/CastError.txt
===================================================================
--- src/Tests/Expect-e/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,36 @@
+Error: Can't choose between alternatives for expression Cast of:
+  Name: f
+
+to:
+  char 
+Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: signed int 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: double 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: f
+
+to:
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+
Index: src/Tests/Expect-e/CharStringConstants.txt
===================================================================
--- src/Tests/Expect-e/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,381 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+constant expression ' ' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'a' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '"' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '_' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\a' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\b' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\e' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\f' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\n' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\r' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\t' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\v' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\'' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\"' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\?' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\\' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\0' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\377' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xf' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'aa' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'a\na' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'a\0a' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xfff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '_\377_' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '_\xff_' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xffff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'a\xff34w' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xffff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression " " array of char with dimension of constant expression 4 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "a" array of char with dimension of constant expression 4 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "'" array of char with dimension of constant expression 4 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '_' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\a" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\b" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\e" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\f" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\n" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\r" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\t" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\v" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\'" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\"" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\?" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\\" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\0" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\377" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xf" array of char with dimension of constant expression 6 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "" array of char with dimension of constant expression 3 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "aa" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "a\na" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int             with environment:
+              Types:
+              Non-types:
+
+
+int main(){
+    ' ';
+    'a';
+    '"';
+    '_';
+    '\a';
+    '\b';
+    '\e';
+    '\f';
+    '\n';
+    '\r';
+    '\t';
+    '\v';
+    '\'';
+    '\"';
+    '\?';
+    '\\';
+    '\0';
+    '\377';
+    '\xf';
+    '\xff';
+    '';
+    'aa';
+    'a\na';
+    'a\0a';
+    '\xfff';
+    '_\377_';
+    '_\xff_';
+    '\xffff';
+    'a\xff34w';
+    '\xff';
+    '\xffff';
+    " ";
+    "a";
+    "'";
+    '_';
+    "\a";
+    "\b";
+    "\e";
+    "\f";
+    "\n";
+    "\r";
+    "\t";
+    "\v";
+    "\'";
+    "\"";
+    "\?";
+    "\\";
+    "\0";
+    "\377";
+    "\xf";
+    "\xff";
+    "";
+    "aa";
+    "a\na";
+    "a\0a";
+    "_\377_";
+    "_\xff_";
+    "\xff";
+    "\xffff";
+    "\xfff";
+    "a\xff34w";
+    "\xffff";
+}
Index: src/Tests/Expect-e/CommentMisc.txt
===================================================================
--- src/Tests/Expect-e/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+i: signed int 
+i: signed int 
+i: signed int 
+i: signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+
+int __i__i;
+int __i__i;
+int __i__i;
+int __i__i;
+int main(){
+    int __x__A0i[((long unsigned int )10)];
+}
Index: src/Tests/Expect-e/Constant0-1.txt
===================================================================
--- src/Tests/Expect-e/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,112 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
Index: src/Tests/Expect-e/Context.txt
===================================================================
--- src/Tests/Expect-e/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,87 @@
+context has_q
+    with parameters
+      T: type
+
+    with members
+      q: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+f: forall
+      z: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type z (not function type) 
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+          q: pointer to function
+              with parameters
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+
+    function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of context has_r
+            with parameters
+              T: type
+              U: type
+
+            with members
+              r: function
+                  with parameters
+                    instance of type T (not function type) 
+                    pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+                  returning 
+                    instance of type T (not function type) 
+
+
+        Declaration of x: auto type
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+        Declaration of y: auto type
+          with assertions
+            instance of context has_r 
+              with parameters
+                instance of type x (not function type) 
+                instance of type y (not function type) 
+
+
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type y (not function type) 
+              _src: instance of type y (not function type) 
+            returning 
+              instance of type y (not function type) 
+
+
+;
+void __f__A1_0_0____operator_assign__PFt0_Pt0t0___q__PFt0_t0__F__(void (*_adapterF2tz_2tz_)(void (*)(), void *, void *), void (*_adapterF2tz_P2tz2tz_)(void (*)(), void *, void *, void *), long unsigned int z, void (*___operator_assign__PF2tz_P2tz2tz_)(), void (*__q__PF2tz_2tz_)(), ...){
+    ;
+    extern unsigned long x;
+    void *___operator_assign__F2tx_P2tx2tx_(void *___dst__P2tx, void *___src__2tx);
+    extern unsigned long y;
+    void *___operator_assign__F2ty_P2ty2ty_(void *___dst__P2ty, void *___src__2ty);
+}
Index: src/Tests/Expect-e/DeclarationErrors.txt
===================================================================
--- src/Tests/Expect-e/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-e/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Expect-e/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-e/Enum.txt
===================================================================
--- src/Tests/Expect-e/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+enum Colors
+    with members
+      Red: const instance of enum Colors 
+      Yellow: const instance of enum Colors 
+      Pink: const instance of enum Colors 
+      Blue: const instance of enum Colors 
+      Purple: const instance of enum Colors 
+      Orange: const instance of enum Colors 
+      Green: const instance of enum Colors 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of enum Fruits
+            with members
+              Apple: const instance of enum Fruits 
+              Banana: const instance of enum Fruits 
+              Pear: const instance of enum Fruits 
+              Mango: const instance of enum Fruits 
+
+        Declaration of fruit: instance of enum Fruits with initializer 
+          Simple Initializer:             Cast of:
+              Variable Expression: Mango: const instance of enum Fruits 
+
+            to:
+              instance of enum Fruits 
+            with environment:
+              Types:
+              Non-types:
+
+
+enum Colors
+{
+    __Red__C7eColors,
+    __Yellow__C7eColors,
+    __Pink__C7eColors,
+    __Blue__C7eColors,
+    __Purple__C7eColors,
+    __Orange__C7eColors,
+    __Green__C7eColors,
+}
+;
+void __f__F__(void){
+    enum Fruits
+{
+        __Apple__C7eFruits,
+        __Banana__C7eFruits,
+        __Pear__C7eFruits,
+        __Mango__C7eFruits,
+}
+;
+    enum Fruits __fruit__7eFruits = ((enum Fruits )__Mango__C7eFruits);
+}
Index: src/Tests/Expect-e/Exception.txt
===================================================================
--- src/Tests/Expect-e/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
Index: src/Tests/Expect-e/Expression.txt
===================================================================
--- src/Tests/Expect-e/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,101 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s 
+
+Error: No reasonable alternatives for expression Name: !?
+
+Error: No reasonable alternatives for expression Name: ~?
+
+Error: No reasonable alternatives for expression Name: +?
+
+Error: No reasonable alternatives for expression Name: -?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ++?
+
+Error: No reasonable alternatives for expression Name: --?
+
+Error: No reasonable alternatives for expression Name: ?++
+
+Error: No reasonable alternatives for expression Name: ?--
+
+Error: No reasonable alternatives for expression Name: ?+?
+
+Error: No reasonable alternatives for expression Name: ?-?
+
+Error: No reasonable alternatives for expression Name: ?*?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
+Error: No reasonable alternatives for expression Name: ?%?
+
+Error: No reasonable alternatives for expression Name: ?^?
+
+Error: No reasonable alternatives for expression Name: ?&?
+
+Error: No reasonable alternatives for expression Name: ?|?
+
+Error: No reasonable alternatives for expression Name: ?<?
+
+Error: No reasonable alternatives for expression Name: ?>?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: i
+
+Error: No reasonable alternatives for expression Name: ?==?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?<<?
+
+Error: No reasonable alternatives for expression Name: ?>>?
+
+Error: No reasonable alternatives for expression Name: ?<=?
+
+Error: No reasonable alternatives for expression Name: ?>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?-=?
+
+Error: No reasonable alternatives for expression Name: ?*=?
+
+Error: No reasonable alternatives for expression Name: ?/=?
+
+Error: No reasonable alternatives for expression Name: ?%=?
+
+Error: No reasonable alternatives for expression Name: ?&=?
+
+Error: No reasonable alternatives for expression Name: ?|=?
+
+Error: No reasonable alternatives for expression Name: ?^=?
+
+Error: No reasonable alternatives for expression Name: ?<<=?
+
+Error: No reasonable alternatives for expression Name: ?>>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Expect-e/Forall.txt
===================================================================
--- src/Tests/Expect-e/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,75 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type P1 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: instance of type P1 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        j: instance of type P2 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      j: instance of type P2 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+to:
+  pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+to:
+  pointer to instance of type T2 (not function type) 
+    with parameters
+      signed int 
+      signed int 
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?!=?
+...to: 
+    Applying untyped: 
+        Name: ?<?
+    ...to: 
+        Name: t1
+        Name: t2
+    Name: 0
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Name: x
+
+Error: No reasonable alternatives for expression Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: min
+...to: 
+constant expression 4.0 double constant expression 3.0 double 
Index: src/Tests/Expect-e/Function.txt
===================================================================
--- src/Tests/Expect-e/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,248 @@
+a: signed int 
+a: float 
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: f: function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: a: signed int 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Cast of:
+              Application of
+                Variable Expression: f: function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+              to arguments
+                                  Variable Expression: a: signed int 
+
+
+            to:
+              signed int 
+            with environment:
+              Types:
+              Non-types:
+
+
+p: tuple of types
+    signed int 
+
+p: tuple of types
+    signed int 
+    double 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+q: tuple of types
+    char 
+
+q: tuple of types
+    signed int 
+    signed int 
+
+q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+s: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: r: function
+                  with parameters
+                    signed int 
+                    signed int 
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+                    signed int 
+
+            to arguments
+                              Variable Expression: p: tuple of types
+                    signed int 
+                    signed int 
+                    signed int 
+
+
+                              Cast of:
+                  Variable Expression: q: tuple of types
+                      char 
+
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: r: function
+                  with parameters
+                    signed int 
+                    signed int 
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Tuple:
+                                          Variable Expression: q: tuple of types
+                          char 
+
+
+                                          Variable Expression: p: tuple of types
+                          signed int 
+                          signed int 
+                          signed int 
+
+
+
+                to:
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: r: function
+                  with parameters
+                    signed int 
+                    signed int 
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+                    signed int 
+
+            to arguments
+                              Application of
+                  Variable Expression: r: function
+                      with parameters
+                        signed int 
+                        signed int 
+                        signed int 
+                        signed int 
+                      returning 
+                        signed int 
+                        signed int 
+
+                to arguments
+                                      Variable Expression: p: tuple of types
+                        signed int 
+                        signed int 
+                        signed int 
+
+
+                                      Cast of:
+                      Variable Expression: q: tuple of types
+                          char 
+
+
+                    to:
+                      signed int 
+
+
+                              Application of
+                  Variable Expression: r: function
+                      with parameters
+                        signed int 
+                        signed int 
+                        signed int 
+                        signed int 
+                      returning 
+                        signed int 
+                        signed int 
+
+                to arguments
+                                      Variable Expression: q: tuple of types
+                        signed int 
+                        signed int 
+
+
+                                      Variable Expression: q: tuple of types
+                        signed int 
+                        signed int 
+
+
+
+            with environment:
+              Types:
+              Non-types:
+
+
+cfa-cpp: GenPoly/Box.cc:398: void GenPoly::{anonymous}::Pass1::boxParams(ApplicationExpr*, FunctionType*, std::list<Expression*>::iterator&, const TyVarMap&): Assertion `arg != appExpr->get_args().end()' failed.
+Aborted (core dumped)
Index: src/Tests/Expect-e/Functions.txt
===================================================================
--- src/Tests/Expect-e/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-e/GccExtensions.txt
===================================================================
--- src/Tests/Expect-e/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,48 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s4 
+
Index: src/Tests/Expect-e/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Expect-e/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,443 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
+int main(){
+    int __f1__i;
+    int __f2__i;
+    int *__f3__Pi;
+    int **__f4__PPi;
+    int *const *__f5__PCPi;
+    int *const *const __f6__CPCPi;
+    int *__f7__Pi;
+    int **__f8__PPi;
+    int *const *__f9__PCPi;
+    int *const *const __f10__CPCPi;
+    int *__f11__Pi;
+    int **__f12__PPi;
+    int *const *__f13__PCPi;
+    int *const *const __f14__CPCPi;
+    int __f15__A0i[];
+    int __f16__A0i[((long unsigned int )10)];
+    int __f17__A0i[];
+    int __f18__A0i[((long unsigned int )10)];
+    int *__f19__A0Pi[];
+    int *__f20__A0Pi[((long unsigned int )10)];
+    int **__f21__A0PPi[];
+    int **__f22__A0PPi[((long unsigned int )10)];
+    int *const *__f23__A0PCPi[];
+    int *const *__f24__A0PCPi[((long unsigned int )10)];
+    int *const *const __f25__A0CPCPi[];
+    int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+    int *__f27__A0Pi[];
+    int *__f28__A0Pi[((long unsigned int )10)];
+    int **__f29__A0PPi[];
+    int **__f30__A0PPi[((long unsigned int )10)];
+    int *const *__f31__A0PCPi[];
+    int *const *__f32__A0PCPi[((long unsigned int )10)];
+    int *const *const __f33__A0CPCPi[];
+    int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+    int *__f35__A0Pi[];
+    int *__f36__A0Pi[((long unsigned int )10)];
+    int **__f37__A0PPi[];
+    int **__f38__A0PPi[((long unsigned int )10)];
+    int *const *__f39__A0PCPi[];
+    int *const *__f40__A0PCPi[((long unsigned int )10)];
+    int *const *const __f41__A0CPCPi[];
+    int *const *const __f42__A0CPCPi[((long unsigned int )10)];
+    int __f43__A0A0i[][3];
+    int __f44__A0A0i[((long unsigned int )3)][3];
+    int __f45__A0A0i[][3];
+    int __f46__A0A0i[((long unsigned int )3)][3];
+    int __f47__A0A0i[][3];
+    int __f48__A0A0i[((long unsigned int )3)][3];
+    int *__f49__A0A0Pi[][3];
+    int *__f50__A0A0Pi[((long unsigned int )3)][3];
+    int **__f51__A0A0PPi[][3];
+    int **__f52__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f53__A0A0PCPi[][3];
+    int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f55__A0A0CPCPi[][3];
+    int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+    int *__f57__A0A0Pi[][3];
+    int *__f58__A0A0Pi[((long unsigned int )3)][3];
+    int **__f59__A0A0PPi[][3];
+    int **__f60__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f61__A0A0PCPi[][3];
+    int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f63__A0A0CPCPi[][3];
+    int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+    int __f65__Fi_i_(int );
+    int __f66__Fi_i_(int );
+    int *__f67__FPi_i_(int );
+    int **__f68__FPPi_i_(int );
+    int *const *__f69__FPCPi_i_(int );
+    int *const *const __f70__FCPCPi_i_(int );
+    int *__f71__FPi_i_(int );
+    int **__f72__FPPi_i_(int );
+    int *const *__f73__FPCPi_i_(int );
+    int *const *const __f74__FCPCPi_i_(int );
+    int (*__f75__PFi_i_)(int );
+    int (**__f76__PPFi_i_)(int );
+    int (*const *__f77__PCPFi_i_)(int );
+    int (*const *const __f78__CPCPFi_i_)(int );
+    int (*(*__f79__PFPFi___i_)(int ))();
+    int (*(*const __f80__CPFPFi___i_)(int ))();
+    int (*const (*const __f81__CPFCPFi___i_)(int ))();
+}
Index: src/Tests/Expect-e/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Expect-e/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,223 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f2: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f7: pointer to signed int 
+      f8: pointer to pointer to signed int 
+      f9: pointer to const pointer to signed int 
+      f10: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f17: pointer to signed int 
+      f18: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f27: pointer to pointer to signed int 
+      f28: pointer to array of constant expression 10 signed int pointer to signed int 
+      f29: pointer to pointer to pointer to signed int 
+      f30: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f31: pointer to pointer to const pointer to signed int 
+      f32: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f33: pointer to const pointer to const pointer to signed int 
+      f34: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f45: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f46: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f47: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f48: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f66: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f71: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f72: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f73: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f74: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      f86: const pointer to variable length array of signed int 
+      f87: const pointer to array of constant expression 3 signed int signed int 
+      f88: pointer to static array of constant expression 3 signed int signed int 
+      f89: const pointer to static array of constant expression 3 signed int signed int 
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f95: const pointer to variable length array of pointer to signed int 
+      f96: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f97: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f98: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f99: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f104: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f105: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f106: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f107: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f113: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f114: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f115: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f116: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f117: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+int __fred__Fi_iiPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPiPiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPA0iPA0iPA0iPA0iPA0iPA0iPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPFi_i_PFi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFi_i_PPFi_i_PCPFi_i_CPCPFi_i_PFPFi___i_CPFPFi___i_CPFCPFi___i_CPiCPiPiCPiCPiCPiPiCPiCPPiCPPiPPPiCPPCPiCPCPCPiCPPiCPPiPPPiCPPCPiCPCPCPiCPA0iCPA0iPA0iCPA0iCPA0iCPA0iPA0iCPA0iCPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPiCPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPi_(int __f1__i, int __f2__i, int *__f3__Pi, int **__f4__PPi, int *const *__f5__PCPi, int *const *const __f6__CPCPi, int *__f7__Pi, int **__f8__PPi, int *const *__f9__PCPi, int *const *const __f10__CPCPi, int *__f11__Pi, int **__f12__PPi, int *const *__f13__PCPi, int *const *const __f14__CPCPi, int *__f15__Pi, int __f16__Pi[10], int *__f17__Pi, int __f18__Pi[10], int **__f19__PPi, int *__f20__PPi[10], int ***__f21__PPPi, int **__f22__PPPi[10], int *const **__f23__PPCPi, int *const *__f24__PPCPi[10], int *const *const *__f25__PCPCPi, int *const *const __f26__PCPCPi[10], int **__f27__PPi, int *__f28__PPi[10], int ***__f29__PPPi, int **__f30__PPPi[10], int *const **__f31__PPCPi, int *const *__f32__PPCPi[10], int *const *const *__f33__PCPCPi, int *const *const __f34__PCPCPi[10], int **__f35__PPi, int *__f36__PPi[10], int ***__f37__PPPi, int **__f38__PPPi[10], int *const **__f39__PPCPi, int *const *__f40__PPCPi[10], int *const *const *__f41__PCPCPi, int *const *const __f42__PCPCPi[10], int (*__f43__PA0i)[3], int __f44__PA0i[3][3], int (*__f45__PA0i)[3], int __f46__PA0i[3][3], int (*__f47__PA0i)[3], int __f48__PA0i[3][3], int *(*__f49__PA0Pi)[3], int *__f50__PA0Pi[3][3], int **(*__f51__PA0PPi)[3], int **__f52__PA0PPi[3][3], int *const *(*__f53__PA0PCPi)[3], int *const *__f54__PA0PCPi[3][3], int *const *const (*__f55__PA0CPCPi)[3], int *const *const __f56__PA0CPCPi[3][3], int *(*__f57__PA0Pi)[3], int *__f58__PA0Pi[3][3], int **(*__f59__PA0PPi)[3], int **__f60__PA0PPi[3][3], int *const *(*__f61__PA0PCPi)[3], int *const *__f62__PA0PCPi[3][3], int *const *const (*__f63__PA0CPCPi)[3], int *const *const __f64__PA0CPCPi[3][3], int (*__f65__PFi_i_)(int ), int (*__f66__PFi_i_)(int ), int *(*__f67__PFPi_i_)(int ), int **(*__f68__PFPPi_i_)(int ), int *const *(*__f69__PFPCPi_i_)(int ), int *const *const (*__f70__PFCPCPi_i_)(int ), int *(*__f71__PFPi_i_)(int ), int **(*__f72__PFPPi_i_)(int ), int *const *(*__f73__PFPCPi_i_)(int ), int *const *const (*__f74__PFCPCPi_i_)(int ), int (*__f75__PFi_i_)(int ), int (**__f76__PPFi_i_)(int ), int (*const *__f77__PCPFi_i_)(int ), int (*const *const __f78__CPCPFi_i_)(int ), int (*(*__f79__PFPFi___i_)(int ))(), int (*(*const __f80__CPFPFi___i_)(int ))(), int (*const (*const __f81__CPFCPFi___i_)(int ))(), int __f82__CPi[const *], int __f83__CPi[const 3], int __f84__Pi[static 3], int __f85__CPi[static const 3], int __f86__CPi[const *], int __f87__CPi[const 3], int __f88__Pi[static 3], int __f89__CPi[static const 3], int *__f90__CPPi[const *], int *__f91__CPPi[const 3], int **__f92__PPPi[static 3], int *const *__f93__CPPCPi[static const 3], int *const *const __f94__CPCPCPi[static const 3], int *__f95__CPPi[const *], int *__f96__CPPi[const 3], int **__f97__PPPi[static 3], int *const *__f98__CPPCPi[static const 3], int *const *const __f99__CPCPCPi[static const 3], int __f100__CPA0i[const *][3], int __f101__CPA0i[const 3][3], int __f102__PA0i[static 3][3], int __f103__CPA0i[static const 3][3], int __f104__CPA0i[const *][3], int __f105__CPA0i[const 3][3], int __f106__PA0i[static 3][3], int __f107__CPA0i[static const 3][3], int *__f108__CPA0Pi[const *][3], int *__f109__CPA0Pi[const 3][3], int **__f110__PA0PPi[static 3][3], int *const *__f111__CPA0PCPi[static const 3][3], int *const *const __f112__CPA0CPCPi[static const 3][3], int *__f113__CPA0Pi[const *][3], int *__f114__CPA0Pi[const 3][3], int **__f115__PA0PPi[static 3][3], int *const *__f116__CPA0PCPi[static const 3][3], int *const *const __f117__CPA0CPCPi[static const 3][3]){
+}
Index: src/Tests/Expect-e/InferParam.txt
===================================================================
--- src/Tests/Expect-e/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,358 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+g: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+                  Expression Statement:
+            Application of
+              Variable Expression: i: function
+                  with parameters
+                    float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Application of
+                  Variable Expression: g: forall
+                        T: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type T (not function type) 
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type T (not function type) 
+
+
+                        U: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type U (not function type) 
+                                  instance of type U (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+                            f: pointer to function
+                                with parameters
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                to arguments
+                                      Variable Expression: a: signed int 
+
+                with inferred parameters:
+                  ?=?: function
+                    with parameters
+                      pointer to signed int 
+                      signed int 
+                    returning 
+                      signed int 
+
+                  ?=?: function
+                    with parameters
+                      pointer to float 
+                      float 
+                    returning 
+                      float 
+
+                  f: function
+                    with parameters
+                      signed int 
+                    returning 
+                      float 
+
+
+            with environment:
+              Types:
+                _0_T -> signed int 
+                _1_U -> float 
+              Non-types:
+
+
+context has_f_and_j
+    with parameters
+      T: type
+      U: type
+
+    with members
+      f: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+      j: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type U (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+
+j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+k: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          j: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+l: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+                  Expression Statement:
+            Application of
+              Variable Expression: i: function
+                  with parameters
+                    float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Application of
+                  Variable Expression: k: forall
+                        T: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type T (not function type) 
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type T (not function type) 
+
+
+                        U: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type U (not function type) 
+                                  instance of type U (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+                            f: pointer to function
+                                with parameters
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+                            j: pointer to function
+                                with parameters
+                                  instance of type T (not function type) 
+                                  instance of type U (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                to arguments
+                                      Variable Expression: b: signed int 
+
+                with inferred parameters:
+                  ?=?: function
+                    with parameters
+                      pointer to signed int 
+                      signed int 
+                    returning 
+                      signed int 
+
+                  ?=?: function
+                    with parameters
+                      pointer to float 
+                      float 
+                    returning 
+                      float 
+
+                  f: function
+                    with parameters
+                      signed int 
+                    returning 
+                      float 
+
+                  j: function
+                    with parameters
+                      signed int 
+                      float 
+                    returning 
+                      float 
+
+
+            with environment:
+              Types:
+                _0_T -> signed int 
+                _1_U -> float 
+              Non-types:
+
+
+int ___operator_assign__Fi_Pii_(int *, int );
+float ___operator_assign__Ff_Pff_(float *, float );
+double ___operator_assign__Fd_Pdd_(double *, double );
+void __g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void *, void *);
+float __f__Ff_i_(int );
+double __f__Fd_i_(int );
+void __i__F_f_(float );
+void __h__F__(){
+    int __a__i;
+    float _temp0;
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
+    }
+    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    __i__F_f_((__g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(_adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), (&_temp0), (&__a__i)) , _temp0));
+}
+;
+float __j__Ff_if_(int , float );
+void __k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(void (*_adapterF2tU_2tT2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void (*__j__PF2tU_2tT2tU_)(), void *, void *);
+void __l__F__(){
+    int __b__i;
+    float _temp1;
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
+    }
+    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    void _adapterFf_if_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(int , float ))_adaptee)((*((int *)_p0)), (*((float *)_p1))));
+    }
+    __i__F_f_((__k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(_adapterFf_if_, _adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), ((void (*)())__j__Ff_if_), (&_temp1), (&__b__i)) , _temp1));
+}
Index: src/Tests/Expect-e/Initialization.txt
===================================================================
--- src/Tests/Expect-e/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,398 @@
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: tuple of types
+          signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      w: tuple of types
+        signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Tuple:
+    constant expression 2 signed int 
+
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 2 signed int 
+to:
+  pointer to instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        v: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      v: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 6 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 17 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct point 
+
Index: src/Tests/Expect-e/Initialization2.txt
===================================================================
--- src/Tests/Expect-e/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,462 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 9 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 8 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous8 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 9 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 8 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous10 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct t 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 6 signed int 
+to:
+  instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous11 
+
Index: src/Tests/Expect-e/LabelledExit.txt
===================================================================
--- src/Tests/Expect-e/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error: 'continue' target label must be an enclosing loop: 
Index: src/Tests/Expect-e/Members.txt
===================================================================
--- src/Tests/Expect-e/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,674 @@
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+__builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+struct a_struct
+    with members
+      a: signed int 
+      a: char 
+      a: float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                              Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to char 
+                    char 
+                  returning 
+                    char 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    a: char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                              Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to float 
+                    float 
+                  returning 
+                    float 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    a: float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                              Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+union b_struct
+    with members
+      a: pointer to signed int 
+      a: pointer to char 
+      a: pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: __builtin_memcpy: function
+                    accepting unspecified arguments
+                  returning 
+                    pointer to char 
+
+            to arguments
+                              Variable Expression: _dst: pointer to instance of union b_struct 
+
+                              Address of:
+                  Variable Expression: _src: instance of union b_struct 
+
+                              Sizeof Expression on: instance of union b_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of the_struct: instance of struct a_struct 
+        Declaration of the_struct: instance of union b_struct 
+                  Expression Statement:
+            Application of
+              Variable Expression: a: function
+                  with parameters
+                    char 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Variable Expression: the_struct: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: b: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: the_struct: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: c: function
+                  with parameters
+                    pointer to signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  a: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: the_struct: instance of union b_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: d: function
+                  with parameters
+                    pointer to float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  a: pointer to float 
+                from aggregate: 
+                  Variable Expression: the_struct: instance of union b_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+struct c_struct
+    with members
+      signed int 
+      char 
+      float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                              Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to char 
+                    char 
+                  returning 
+                    char 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                              Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to float 
+                    float 
+                  returning 
+                    float 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                              Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct c_struct 
+
+to:
+  instance of struct c_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+union d_struct
+    with members
+      pointer to signed int 
+      pointer to char 
+      pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union d_struct 
+      _src: instance of union d_struct 
+    returning 
+      instance of union d_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: __builtin_memcpy: function
+                    accepting unspecified arguments
+                  returning 
+                    pointer to char 
+
+            to arguments
+                              Variable Expression: _dst: pointer to instance of union d_struct 
+
+                              Address of:
+                  Variable Expression: _src: instance of union d_struct 
+
+                              Sizeof Expression on: instance of union d_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union d_struct 
+
+to:
+  instance of union d_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of x: short unsigned int 
+        Declaration of x: instance of struct c_struct 
+        Declaration of x: instance of union d_struct 
+                  Expression Statement:
+            Application of
+              Variable Expression: a: function
+                  with parameters
+                    char 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: x: short unsigned int 
+
+                to:
+                  char 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: b: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: x: short unsigned int 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: c: function
+                  with parameters
+                    pointer to signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: x: instance of union d_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: d: function
+                  with parameters
+                    pointer to float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  pointer to float 
+                from aggregate: 
+                  Variable Expression: x: instance of union d_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+struct forward
+q: pointer to instance of struct forward 
+struct forward
+    with members
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct forward 
+
+                              Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct forward 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct forward 
+
+to:
+  instance of struct forward 
+with environment:
+  Types:
+  Non-types:
+
+
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Member Expression, with field: 
+              y: signed int 
+            from aggregate: 
+              Application of
+                Variable Expression: *?: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                    returning 
+                      lvalue instance of type T (not function type) 
+
+              to arguments
+                                  Variable Expression: q: pointer to instance of struct forward 
+
+              with inferred parameters:
+                ?=?: inline static function
+                  with parameters
+                    _dst: pointer to instance of struct forward 
+                    _src: instance of struct forward 
+                  returning 
+                    instance of struct forward 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+Error: unbound type variable in application Application of
+  Variable Expression: *?: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        pointer to instance of type T (not function type) 
+      returning 
+        pointer to instance of type T (not function type) 
+
+to arguments
+      Variable Expression: q: pointer to instance of struct forward 
+
+with inferred parameters:
+  ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+
Index: src/Tests/Expect-e/Misc.txt
===================================================================
--- src/Tests/Expect-e/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,102 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Comma Expression:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: b: signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Comma Expression:
+                  Comma Expression:
+                    Variable Expression: a: signed int 
+
+                    Variable Expression: a: signed int 
+
+                  Variable Expression: b: signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    unsigned int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Sizeof Expression on:                   Variable Expression: a: signed int 
+
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    unsigned int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Sizeof Expression on: signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+int __a__i;
+int __b__i;
+float __b__f;
+void __g__F_i_(int );
+void __g__F_Ui_(unsigned int );
+void __f__F__(void){
+    __g__F_i_((__a__i , __b__i));
+    __g__F_i_(((__a__i , __a__i) , __b__i));
+    __g__F_Ui_(sizeof(__a__i));
+    __g__F_Ui_(sizeof(int ));
+}
Index: src/Tests/Expect-e/MiscError.txt
===================================================================
--- src/Tests/Expect-e/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,83 @@
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Comma Expression:
+    Name: a
+
+    Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Ambiguous expression in sizeof operand: Name: b
+
Index: src/Tests/Expect-e/NamedParmArg.txt
===================================================================
--- src/Tests/Expect-e/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,37 @@
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f2
+...to: 
+with designator:  Tuple:
+          Name: j
+
+          Name: i
+
+
Index: src/Tests/Expect-e/NumericConstants.txt
===================================================================
--- src/Tests/Expect-e/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: 1
+
Index: src/Tests/Expect-e/OccursError.txt
===================================================================
--- src/Tests/Expect-e/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+    Name: g
+
Index: src/Tests/Expect-e/Operators.txt
===================================================================
--- src/Tests/Expect-e/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,243 @@
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
+?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+struct accumulator
+    with members
+      total: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct accumulator 
+      _src: instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    total: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct accumulator 
+
+                              Member Expression, with field: 
+                  total: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct accumulator 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct accumulator 
+
+to:
+  instance of struct accumulator 
+with environment:
+  Types:
+  Non-types:
+
+
+
+?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: char 
+        Declaration of b: char 
+                  Expression Statement:
+            Application of
+              Variable Expression: ?(): function
+                  with parameters
+                    number1: signed int 
+                    number2: signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: a: char 
+
+                to:
+                  signed int 
+
+                              Cast of:
+                  Variable Expression: b: char 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?(): function
+                  with parameters
+                    number1: signed int 
+                    number2: signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: a: char 
+
+                to:
+                  signed int 
+
+                              Cast of:
+                  Variable Expression: b: char 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?+?: function
+                  with parameters
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: a: char 
+
+                to:
+                  signed int 
+
+                              Cast of:
+                  Variable Expression: b: char 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+        Declaration of ?+?: instance of struct accumulator 
+                  Expression Statement:
+            Application of
+              Variable Expression: ?(): function
+                  with parameters
+                    a: instance of struct accumulator 
+                    number1: char 
+                    number2: char 
+                  returning 
+                    char 
+
+            to arguments
+                              Variable Expression: ?+?: instance of struct accumulator 
+
+                              Variable Expression: a: char 
+
+                              Variable Expression: b: char 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+int ___operator_multiply__Fi_ii_(int , int );
+int ___operator_call__Fi_ii_(int __number1__i, int __number2__i){
+    return ___operator_multiply__Fi_ii_(__number1__i, __number2__i);
+}
+int ___operator_add__Fi_ii_(int , int );
+int ___operator_assign__Fi_Pii_(int *, int );
+struct accumulator
+{
+    int __total__i;
+};
+static inline struct accumulator ___operator_assign__F12saccumulator_P12saccumulator12saccumulator_(struct accumulator *___dst__P12saccumulator, struct accumulator ___src__12saccumulator){
+    ___operator_assign__Fi_Pii_((&(*___dst__P12saccumulator).__total__i), ___src__12saccumulator.__total__i);
+    return ___src__12saccumulator;
+}
+char ___operator_call__Fc_12saccumulatorcc_(struct accumulator __a__12saccumulator, char __number1__c, char __number2__c);
+void __f__F__(void){
+    char __a__c;
+    char __b__c;
+    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
+    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
+    ___operator_add__Fi_ii_(((int )__a__c), ((int )__b__c));
+    struct accumulator ___operator_add__12saccumulator;
+    ___operator_call__Fc_12saccumulatorcc_(___operator_add__12saccumulator, __a__c, __b__c);
+}
Index: src/Tests/Expect-e/Quad.txt
===================================================================
--- src/Tests/Expect-e/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,235 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+quad: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: square: pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+          Application of
+        Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: u: instance of type U (not function type) 
+
+
+
+to:
+  instance of type U (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: quad: forall
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+                        square: pointer to function
+                            with parameters
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    u: instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+            to arguments
+              constant expression 7 signed int 
+            with inferred parameters:
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+              ?*?: function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+              square: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+                      ?*?: pointer to function
+                          with parameters
+                            instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  t: instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            with environment:
+              Types:
+                _0_U -> signed int 
+                _1_T -> signed int 
+              Non-types:
+
+
+int ___operator_assign__Fi_Pii_(int *, int );
+int ___operator_multiply__Fi_ii_(int , int );
+void __square__A1_0_0____operator_assign__PFt0_Pt0t0____operator_multiply__PFt0_t0t0__Ft0_t0_(void (*_adapterF2tT_2tT2tT_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_multiply__PF2tT_2tT2tT_)(), void *_retparm, void *__t__2tT){
+    _adapterF2tT_2tT2tT_(___operator_multiply__PF2tT_2tT2tT_, _retparm, __t__2tT, __t__2tT);
+    return ;
+}
+void __quad__A1_0_0____operator_assign__PFt0_Pt0t0___square__PFt0_t0__Ft0_t0_(void (*_adapterF2tU_2tU_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), long unsigned int U, void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__square__PF2tU_2tU_)(), void *_retparm, void *__u__2tU){
+    void *_temp0;
+    (_temp0=__builtin_alloca(U));
+    _adapterF2tU_2tU_(__square__PF2tU_2tU_, _retparm, (_adapterF2tU_2tU_(__square__PF2tU_2tU_, _temp0, __u__2tU) , _temp0));
+    return ;
+}
+void __f__F__(){
+    int _thunk0(int _p0){
+        int _temp1;
+        void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+            ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+        }
+        void _adapterFi_ii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+            ((*((int *)_ret))=((int (*)(int , int ))_adaptee)((*((int *)_p0)), (*((int *)_p1))));
+        }
+        return (__square__A1_0_0____operator_assign__PFt0_Pt0t0____operator_multiply__PFt0_t0t0__Ft0_t0_(_adapterFi_ii_, _adapterFi_Pii_, sizeof(int ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_multiply__Fi_ii_), (&_temp1), (&_p0)) , _temp1);
+    }
+    int _temp2;
+    int _temp3;
+    (_temp3=7);
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFi_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((int *)_ret))=((int (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    (__quad__A1_0_0____operator_assign__PFt0_Pt0t0___square__PFt0_t0__Ft0_t0_(_adapterFi_i_, _adapterFi_Pii_, sizeof(int ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())(&_thunk0)), (&_temp2), (&_temp3)) , _temp2);
+}
Index: src/Tests/Expect-e/Rank2.txt
===================================================================
--- src/Tests/Expect-e/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,301 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+a: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+        Declaration of g: function
+            with parameters
+              p: pointer to forall
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    p: pointer to forall
+                          U: type
+                            with assertions
+                              ?=?: pointer to function
+                                  with parameters
+                                    pointer to instance of type U (not function type) 
+                                    instance of type U (not function type) 
+                                  returning 
+                                    instance of type U (not function type) 
+
+
+                        function
+                        with parameters
+                          instance of type U (not function type) 
+                        returning 
+                          nothing 
+
+                  returning 
+                    nothing 
+
+            to arguments
+                              Variable Expression: f: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      nothing 
+
+
+            with inferred parameters:
+              ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            with environment:
+              Types:
+                _1_T -> instance of type _0_U (not function type) 
+              Non-types:
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of h: function
+            with parameters
+              null: pointer to signed int 
+            returning 
+              nothing 
+
+        Declaration of id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+        Declaration of 0: signed int 
+                  Expression Statement:
+            Application of
+              Variable Expression: h: function
+                  with parameters
+                    null: pointer to signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Application of
+                  Variable Expression: id: forall
+                        T: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type T (not function type) 
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type T (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                to arguments
+                                      Application of
+                      Variable Expression: id: forall
+                            T: type
+                              with assertions
+                                ?=?: pointer to function
+                                    with parameters
+                                      pointer to instance of type T (not function type) 
+                                      instance of type T (not function type) 
+                                    returning 
+                                      instance of type T (not function type) 
+
+
+                          function
+                          with parameters
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+                    to arguments
+                                              Application of
+                          Variable Expression: id: forall
+                                T: type
+                                  with assertions
+                                    ?=?: pointer to function
+                                        with parameters
+                                          pointer to instance of type T (not function type) 
+                                          instance of type T (not function type) 
+                                        returning 
+                                          instance of type T (not function type) 
+
+
+                              function
+                              with parameters
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+                        to arguments
+                                                      Variable Expression: 0: forall
+                                  T: incomplete type
+                                pointer to instance of type T (not function type) 
+
+                        with inferred parameters:
+                          ?=?: forall
+                              DT: incomplete type
+                            function
+                            with parameters
+                              pointer to pointer to instance of type DT (not function type) 
+                              pointer to instance of type DT (not function type) 
+                            returning 
+                              pointer to instance of type DT (not function type) 
+
+
+                    with inferred parameters:
+                      ?=?: forall
+                          DT: incomplete type
+                        function
+                        with parameters
+                          pointer to pointer to instance of type DT (not function type) 
+                          pointer to instance of type DT (not function type) 
+                        returning 
+                          pointer to instance of type DT (not function type) 
+
+
+                with inferred parameters:
+                  ?=?: forall
+                      DT: incomplete type
+                    function
+                    with parameters
+                      pointer to pointer to instance of type DT (not function type) 
+                      pointer to instance of type DT (not function type) 
+                    returning 
+                      pointer to instance of type DT (not function type) 
+
+
+            with environment:
+              Types:
+                _0_T -> forall
+                      _3_T: incomplete type
+                    pointer to instance of type _3_T (not function type) 
+                _1_T -> forall
+                      _3_T: incomplete type
+                    pointer to instance of type _3_T (not function type) 
+                _2_T -> forall
+                      _3_T: incomplete type
+                    pointer to instance of type _3_T (not function type) 
+                _3_T -> signed int 
+                _5_DT -> signed int 
+                _7_DT -> signed int 
+                _9_DT -> signed int 
+              Non-types:
+
+
+int ___operator_assign__Fi_Pii_(int *, int );
+void *___operator_assign__A0_1_0__FPd0_PPd0Pd0_(void **, void *);
+void __a__F__(){
+    void __f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *);
+    void __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(void (*__p__PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0_)(void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), long unsigned int U, void (*___operator_assign__PF2tU_P2tU2tU_)(), void *));
+    __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(__f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_);
+}
+void __g__F__(){
+    void __h__F_Pi_(int *__null__Pi);
+    void __id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *, void *);
+    void *___constant_zero__A0_1_0__Pd0;
+    int ___constant_zero__i;
+    void *_thunk0(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_thunk1(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_thunk2(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_temp0;
+    void _adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((_3_T **)_ret))=((void *(*)(void **, void *))_adaptee)(_p0, (*((_3_T **)_p1))));
+    }
+    void *_temp1;
+    void *_temp2;
+    __h__F_Pi_((__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk2)), (&_temp2), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk1)), (&_temp1), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk0)), (&_temp0), (&___constant_zero__A0_1_0__Pd0)) , _temp0))) , _temp1))) , _temp2));
+}
Index: src/Tests/Expect-e/Scope.txt
===================================================================
--- src/Tests/Expect-e/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,73 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      b: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+to:
+  pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: y
+
+to:
+  instance of type u (not function type) 
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: z
+    Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+    Name: y
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: q
+    Name: y
+
+Error: No reasonable alternatives for expression Name: some_func
+
Index: src/Tests/Expect-e/ScopeErrors.txt
===================================================================
--- src/Tests/Expect-e/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Expect-e/ShortCircuit.txt
===================================================================
--- src/Tests/Expect-e/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,188 @@
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+0: signed int 
+g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      a: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+        Declaration of c: float 
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Conditional expression on: 
+                  Cast of:
+                    Application of
+                      Variable Expression: ?!=?: function
+                          with parameters
+                            signed int 
+                            signed int 
+                          returning 
+                            signed int 
+
+                    to arguments
+                                              Variable Expression: a: signed int 
+
+                                              Variable Expression: 0: signed int 
+
+
+                  to:
+                    signed int 
+                First alternative:
+                  Variable Expression: b: signed int 
+                Second alternative:
+                  Variable Expression: c: float 
+
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+            with environment:
+              Types:
+              Non-types:
+
+
+int ___operator_notequal__Fi_ii_(int , int );
+int ___operator_notequal__Fi_ff_(float , float );
+int ___constant_zero__i;
+void __g__F_f_(float );
+void __g__F_i_(int );
+void __f__F_i_(int __a__i){
+    int __b__i;
+    float __c__f;
+    __g__F_f_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) ? __b__i : __c__f));
+    __g__F_i_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) && ((int )___operator_notequal__Fi_ff_(__c__f, ((float )___constant_zero__i)))));
+    __g__F_i_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) || ((int )___operator_notequal__Fi_ii_(__b__i, ___constant_zero__i))));
+}
Index: src/Tests/Expect-e/Statement.txt
===================================================================
--- src/Tests/Expect-e/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,190 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+0: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of struct __anonymous0
+            with members
+              b: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Application of
+                      Variable Expression: ?=?: function
+                          with parameters
+                            pointer to signed int 
+                            signed int 
+                          returning 
+                            signed int 
+
+                    to arguments
+                                              Address of:
+                          Member Expression, with field: 
+                            b: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous0 
+
+                                              Member Expression, with field: 
+                          b: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous0 
+
+                    with environment:
+                      Types:
+                      Non-types:
+
+                                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+        Declaration of a: instance of struct __anonymous0 
+                  If on condition: 
+              Cast of:
+                Application of
+                  Variable Expression: ?!=?: function
+                      with parameters
+                        signed int 
+                        signed int 
+                      returning 
+                        signed int 
+
+                to arguments
+                                      Variable Expression: a: signed int 
+
+                                      Variable Expression: 0: signed int 
+
+
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+          .... and branches: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Application of
+                          Variable Expression: ?!=?: function
+                              with parameters
+                                signed int 
+                                signed int 
+                              returning 
+                                signed int 
+
+                        to arguments
+                                                      Variable Expression: a: signed int 
+
+                                                      Variable Expression: 0: signed int 
+
+
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+                  .... with body: 
+                      CompoundStmt
+                        Declaration of b: pointer to signed int 
+                                                  Labels: {}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Variable Expression: b: pointer to signed int 
+                                with environment:
+                                  Types:
+                                  Non-types:
+
+                            condition: 
+                              Cast of:
+                                Application of
+                                  Variable Expression: ?!=?: function
+                                      with parameters
+                                        signed int 
+                                        signed int 
+                                      returning 
+                                        signed int 
+
+                                to arguments
+                                                                      Variable Expression: a: signed int 
+
+                                                                      Variable Expression: 0: signed int 
+
+
+                              to:
+                                signed int 
+                              with environment:
+                                Types:
+                                Non-types:
+
+                            increment: 
+                              Variable Expression: b: pointer to signed int 
+                              with environment:
+                                Types:
+                                Non-types:
+
+                            statement block: 
+                              CompoundStmt
+
+
+
+
+
+int ___operator_assign__Fi_Pii_(int *, int );
+int ___operator_notequal__Fi_ii_(int , int );
+int ___constant_zero__i;
+void __f__F__(){
+    int __a__i;
+    struct __anonymous0
+    {
+        int __b__i;
+    };
+    inline struct __anonymous0 ___operator_assign__F13s__anonymous0_P13s__anonymous013s__anonymous0_(struct __anonymous0 *___dst__P13s__anonymous0, struct __anonymous0 ___src__13s__anonymous0){
+        ___operator_assign__Fi_Pii_((&(*___dst__P13s__anonymous0).__b__i), ___src__13s__anonymous0.__b__i);
+        return ___src__13s__anonymous0;
+    }
+    struct __anonymous0 __a__13s__anonymous0;
+    if (((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i))) {
+        while (((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i))) {
+            int *__b__Pi;
+            for (__b__Pi;((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i));__b__Pi) {
+            }
+
+        }        
+
+    }
+
+}
Index: src/Tests/Expect-e/StructMember.txt
===================================================================
--- src/Tests/Expect-e/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,560 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m1: signed int with bitfield width constant expression 3 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m1: signed int with bitfield width constant expression 3 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m2: signed int with bitfield width constant expression 4 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m2: signed int with bitfield width constant expression 4 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m4: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m4: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m5: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m5: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m6: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m6: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m7: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m7: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m8: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m8: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m9: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m9: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m10: pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m11: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m12: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m12: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m13: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m13: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m14: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Name: __builtin_memcpy
+
Index: src/Tests/Expect-e/Subrange.txt
===================================================================
--- src/Tests/Expect-e/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,49 @@
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+to:
+  pointer to instance of type base_t (not function type) 
+
+Error: No reasonable alternatives for expression Name: low
+
+Error: No reasonable alternatives for expression Name: high
+
+Error: No reasonable alternatives for expression Cast of:
+  Applying untyped: 
+      Name: lbound
+  ...to: 
+      Name: day_of_month
+
+to:
+  unsigned int 
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: target
+
+to:
+  instance of type subrange (not function type) 
+    with parameters
+      instance of type T (not function type) 
+              Name: low
+
+              Name: high
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: target
+
+to:
+  instance of type subrange (not function type) 
+    with parameters
+      instance of type T (not function type) 
+              Name: t_low
+
+              Name: t_high
+
+
+
Index: src/Tests/Expect-e/Switch.txt
===================================================================
--- src/Tests/Expect-e/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-e/Tuple.txt
===================================================================
--- src/Tests/Expect-e/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,228 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f4: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f4: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: x: short signed int 
+    Variable Expression: w: signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: r
+    Tuple:
+              Name: x
+
+              Name: y
+
+              Name: z
+
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: a: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+    Tuple:
+      constant expression 4.6 double 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: c: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+                  Tuple:
+                          Name: c
+
+
+    Tuple:
+      constant expression 2 signed int 
+              Tuple:
+                      Name: a
+
+                      Name: b
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: c
+
+                  Name: d
+
+    Name: t1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Address of:
+  Tuple:
+    constant expression 3 signed int 
+    constant expression 4 signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: s
+    Tuple:
+      constant expression 11 signed int 
+      constant expression 12 signed int 
+      constant expression 13 signed int 
+      constant expression 3.14159 double 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: sp
+    Name: sp
+
+Error: No reasonable alternatives for expression Name: 0
+
Index: src/Tests/Expect-e/TypeGenerator.txt
===================================================================
--- src/Tests/Expect-e/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,148 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      next: pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+to:
+  pointer to pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S2 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      next: pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type List (not function type) 
+
+to:
+  pointer to pointer to instance of struct node 
+    with parameters
+      instance of type T (not function type) 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: my_list
+
+to:
+  instance of struct node 
+    with parameters
+      signed int 
+
+
Index: src/Tests/Expect-e/Typedef.txt
===================================================================
--- src/Tests/Expect-e/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,21 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous0 
+
Index: src/Tests/Expect-e/TypedefDeclarator.txt
===================================================================
--- src/Tests/Expect-e/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,443 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
+int main(){
+    int __f1__i;
+    int __f2__i;
+    int *__f3__Pi;
+    int **__f4__PPi;
+    int *const *__f5__PCPi;
+    int *const *const __f6__CPCPi;
+    int *__f7__Pi;
+    int **__f8__PPi;
+    int *const *__f9__PCPi;
+    int *const *const __f10__CPCPi;
+    int *__f11__Pi;
+    int **__f12__PPi;
+    int *const *__f13__PCPi;
+    int *const *const __f14__CPCPi;
+    int __f15__A0i[];
+    int __f16__A0i[((long unsigned int )10)];
+    int __f17__A0i[];
+    int __f18__A0i[((long unsigned int )10)];
+    int *__f19__A0Pi[];
+    int *__f20__A0Pi[((long unsigned int )10)];
+    int **__f21__A0PPi[];
+    int **__f22__A0PPi[((long unsigned int )10)];
+    int *const *__f23__A0PCPi[];
+    int *const *__f24__A0PCPi[((long unsigned int )10)];
+    int *const *const __f25__A0CPCPi[];
+    int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+    int *__f27__A0Pi[];
+    int *__f28__A0Pi[((long unsigned int )10)];
+    int **__f29__A0PPi[];
+    int **__f30__A0PPi[((long unsigned int )10)];
+    int *const *__f31__A0PCPi[];
+    int *const *__f32__A0PCPi[((long unsigned int )10)];
+    int *const *const __f33__A0CPCPi[];
+    int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+    int *__f35__A0Pi[];
+    int *__f36__A0Pi[((long unsigned int )10)];
+    int **__f37__A0PPi[];
+    int **__f38__A0PPi[((long unsigned int )10)];
+    int *const *__f39__A0PCPi[];
+    int *const *__f40__A0PCPi[((long unsigned int )10)];
+    int *const *const __f41__A0CPCPi[];
+    int *const *const __f42__A0CPCPi[((long unsigned int )10)];
+    int __f43__A0A0i[][3];
+    int __f44__A0A0i[((long unsigned int )3)][3];
+    int __f45__A0A0i[][3];
+    int __f46__A0A0i[((long unsigned int )3)][3];
+    int __f47__A0A0i[][3];
+    int __f48__A0A0i[((long unsigned int )3)][3];
+    int *__f49__A0A0Pi[][3];
+    int *__f50__A0A0Pi[((long unsigned int )3)][3];
+    int **__f51__A0A0PPi[][3];
+    int **__f52__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f53__A0A0PCPi[][3];
+    int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f55__A0A0CPCPi[][3];
+    int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+    int *__f57__A0A0Pi[][3];
+    int *__f58__A0A0Pi[((long unsigned int )3)][3];
+    int **__f59__A0A0PPi[][3];
+    int **__f60__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f61__A0A0PCPi[][3];
+    int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f63__A0A0CPCPi[][3];
+    int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+    int __f65__Fi_i_(int );
+    int __f66__Fi_i_(int );
+    int *__f67__FPi_i_(int );
+    int **__f68__FPPi_i_(int );
+    int *const *__f69__FPCPi_i_(int );
+    int *const *const __f70__FCPCPi_i_(int );
+    int *__f71__FPi_i_(int );
+    int **__f72__FPPi_i_(int );
+    int *const *__f73__FPCPi_i_(int );
+    int *const *const __f74__FCPCPi_i_(int );
+    int (*__f75__PFi_i_)(int );
+    int (**__f76__PPFi_i_)(int );
+    int (*const *__f77__PCPFi_i_)(int );
+    int (*const *const __f78__CPCPFi_i_)(int );
+    int (*(*__f79__PFPFi___i_)(int ))();
+    int (*(*const __f80__CPFPFi___i_)(int ))();
+    int (*const (*const __f81__CPFCPFi___i_)(int ))();
+}
Index: src/Tests/Expect-e/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Expect-e/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,264 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+int __fred__Fi_iPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPA0iPA0iPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPFi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFi_i_PPFi_i_PCPFi_i_CPCPFi_i_PFPFi___i_CPFPFi___i_CPFCPFi___i_CPiCPiPiCPiPFi_CPi_PFi_CPi_PFi_Pi_PFi_CPi_CPPiCPPiPPPiCPPCPiCPCPCPiPFPi_CPi_PFPi_CPi_PFPPi_Pi_PFPCPi_CPi_PFCPCPi_CPi_CPA0iCPA0iPA0iCPA0iPFi_CPA0i_PFi_CPA0i_PFi_PA0i_PFi_CPA0i_CPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPiPFPi_CPA0i_PFPi_CPA0i_PFPPi_PA0i_PFPCPi_CPA0i_PFCPCPi_CPA0i__(int __f1__i, int *__f3__Pi, int **__f4__PPi, int *const *__f5__PCPi, int *const *const __f6__CPCPi, int *__f11__Pi, int **__f12__PPi, int *const *__f13__PCPi, int *const *const __f14__CPCPi, int *__f15__Pi, int __f16__Pi[10], int **__f19__PPi, int *__f20__PPi[10], int ***__f21__PPPi, int **__f22__PPPi[10], int *const **__f23__PPCPi, int *const *__f24__PPCPi[10], int *const *const *__f25__PCPCPi, int *const *const __f26__PCPCPi[10], int **__f35__PPi, int *__f36__PPi[10], int ***__f37__PPPi, int **__f38__PPPi[10], int *const **__f39__PPCPi, int *const *__f40__PPCPi[10], int *const *const *__f41__PCPCPi, int *const *const __f42__PCPCPi[10], int (*__f43__PA0i)[3], int __f44__PA0i[3][3], int *(*__f49__PA0Pi)[3], int *__f50__PA0Pi[3][3], int **(*__f51__PA0PPi)[3], int **__f52__PA0PPi[3][3], int *const *(*__f53__PA0PCPi)[3], int *const *__f54__PA0PCPi[3][3], int *const *const (*__f55__PA0CPCPi)[3], int *const *const __f56__PA0CPCPi[3][3], int *(*__f57__PA0Pi)[3], int *__f58__PA0Pi[3][3], int **(*__f59__PA0PPi)[3], int **__f60__PA0PPi[3][3], int *const *(*__f61__PA0PCPi)[3], int *const *__f62__PA0PCPi[3][3], int *const *const (*__f63__PA0CPCPi)[3], int *const *const __f64__PA0CPCPi[3][3], int (*__f65__PFi_i_)(int ), int *(*__f67__PFPi_i_)(int ), int **(*__f68__PFPPi_i_)(int ), int *const *(*__f69__PFPCPi_i_)(int ), int *const *const (*__f70__PFCPCPi_i_)(int ), int (*__f75__PFi_i_)(int ), int (**__f76__PPFi_i_)(int ), int (*const *__f77__PCPFi_i_)(int ), int (*const *const __f78__CPCPFi_i_)(int ), int (*(*__f79__PFPFi___i_)(int ))(), int (*(*const __f80__CPFPFi___i_)(int ))(), int (*const (*const __f81__CPFCPFi___i_)(int ))(), int __f82__CPi[const *], int __f83__CPi[const 3], int __f84__Pi[static 3], int __f85__CPi[static const 3], int (*)(int [const *]), int (*)(int [const 3]), int (*)(int [static 3]), int (*)(int [static const 3]), int *__f90__CPPi[const *], int *__f91__CPPi[const 3], int **__f92__PPPi[static 3], int *const *__f93__CPPCPi[static const 3], int *const *const __f94__CPCPCPi[static const 3], int *(*)(int [const *]), int *(*)(int [const 3]), int **(*)(int [static 3]), int *const *(*)(int [static const 3]), int *const *const (*)(int [static const 3]), int __f100__CPA0i[const *][3], int __f101__CPA0i[const 3][3], int __f102__PA0i[static 3][3], int __f103__CPA0i[static const 3][3], int (*)(int [const *][3]), int (*)(int [const 3][3]), int (*)(int [static 3][3]), int (*)(int [static const 3][3]), int *__f108__CPA0Pi[const *][3], int *__f109__CPA0Pi[const 3][3], int **__f110__PA0PPi[static 3][3], int *const *__f111__CPA0PCPi[static const 3][3], int *const *const __f112__CPA0CPCPi[static const 3][3], int *(*)(int [const *][3]), int *(*)(int [const 3][3]), int **(*)(int [static 3][3]), int *const *(*)(int [static const 3][3]), int *const *const (*)(int [static const 3][3])){
+}
Index: src/Tests/Expect-e/Typeof.txt
===================================================================
--- src/Tests/Expect-e/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: *?
+
Index: src/Tests/Expect-e/VariableDeclarator.txt
===================================================================
--- src/Tests/Expect-e/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,590 @@
+f1: signed int 
+f2: signed int 
+f3: pointer to signed int 
+f4: pointer to pointer to signed int 
+f5: pointer to const pointer to signed int 
+f6: const pointer to const pointer to signed int 
+f7: pointer to signed int 
+f8: pointer to pointer to signed int 
+f9: pointer to const pointer to signed int 
+f10: const pointer to const pointer to signed int 
+f11: pointer to signed int 
+f12: pointer to pointer to signed int 
+f13: pointer to const pointer to signed int 
+f14: const pointer to const pointer to signed int 
+f15: open array of signed int 
+f16: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f17: open array of signed int 
+f18: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f19: open array of pointer to signed int 
+f20: array of pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f21: open array of pointer to pointer to signed int 
+f22: array of pointer to pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f23: open array of pointer to const pointer to signed int 
+f24: array of pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f25: open array of const pointer to const pointer to signed int 
+f26: array of const pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f27: open array of pointer to signed int 
+f28: array of pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f29: open array of pointer to pointer to signed int 
+f30: array of pointer to pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f31: open array of pointer to const pointer to signed int 
+f32: array of pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f33: open array of const pointer to const pointer to signed int 
+f34: array of const pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f35: pointer to open array of signed int 
+f36: pointer to array of signed int with dimension of constant expression 10 signed int 
+f37: pointer to pointer to open array of signed int 
+f38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+f39: pointer to const pointer to open array of signed int 
+f40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f41: const pointer to const pointer to open array of signed int 
+f42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f43: open array of array of signed int with dimension of constant expression 3 signed int 
+f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f45: open array of array of signed int with dimension of constant expression 3 signed int 
+f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f47: open array of array of signed int with dimension of constant expression 3 signed int 
+f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f69: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f71: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f72: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f73: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f74: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f75: pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f76: pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f77: pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f78: const pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f79: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f80: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f81: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      const pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+cf3: pointer to signed int 
+cf4: pointer to pointer to signed int 
+cf5: pointer to const pointer to signed int 
+cf6: const pointer to const pointer to signed int 
+cf15: open array of signed int 
+cf16: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf19: open array of pointer to signed int 
+cf20: array of pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf21: open array of pointer to pointer to signed int 
+cf22: array of pointer to pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf23: open array of pointer to const pointer to signed int 
+cf24: array of pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf25: open array of const pointer to const pointer to signed int 
+cf26: array of const pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf35: pointer to open array of signed int 
+cf36: pointer to array of signed int with dimension of constant expression 10 signed int 
+cf37: pointer to pointer to open array of signed int 
+cf38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+cf39: pointer to const pointer to open array of signed int 
+cf40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf41: const pointer to const pointer to open array of signed int 
+cf42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf43: open array of array of signed int with dimension of constant expression 3 signed int 
+cf44: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+cf50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+cf52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf53: open array of array of const pointer to signed int with dimension of constant expression 3 signed int 
+cf54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+cf56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+cf68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+cf69: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to pointer to signed int 
+
+cf70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+v3: pointer to open array of pointer to open array of pointer to function
+    with parameters
+      pointer to open array of pointer to open array of signed int 
+      pointer to open array of pointer to open array of signed int 
+    returning 
+      pointer to open array of pointer to open array of signed int 
+
+int __f1__i;
+int __f2__i;
+int *__f3__Pi;
+int **__f4__PPi;
+int *const *__f5__PCPi;
+int *const *const __f6__CPCPi;
+int *__f7__Pi;
+int **__f8__PPi;
+int *const *__f9__PCPi;
+int *const *const __f10__CPCPi;
+int *__f11__Pi;
+int **__f12__PPi;
+int *const *__f13__PCPi;
+int *const *const __f14__CPCPi;
+int __f15__A0i[];
+int __f16__A0i[((long unsigned int )10)];
+int __f17__A0i[];
+int __f18__A0i[((long unsigned int )10)];
+int *__f19__A0Pi[];
+int *__f20__A0Pi[((long unsigned int )10)];
+int **__f21__A0PPi[];
+int **__f22__A0PPi[((long unsigned int )10)];
+int *const *__f23__A0PCPi[];
+int *const *__f24__A0PCPi[((long unsigned int )10)];
+int *const *const __f25__A0CPCPi[];
+int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+int *__f27__A0Pi[];
+int *__f28__A0Pi[((long unsigned int )10)];
+int **__f29__A0PPi[];
+int **__f30__A0PPi[((long unsigned int )10)];
+int *const *__f31__A0PCPi[];
+int *const *__f32__A0PCPi[((long unsigned int )10)];
+int *const *const __f33__A0CPCPi[];
+int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+int (*__f35__PA0i)[];
+int (*__f36__PA0i)[10];
+int (**__f37__PPA0i)[];
+int (**__f38__PPA0i)[10];
+int (*const *__f39__PCPA0i)[];
+int (*const *__f40__PCPA0i)[10];
+int (*const *const __f41__CPCPA0i)[];
+int (*const *const __f42__CPCPA0i)[10];
+int __f43__A0A0i[][3];
+int __f44__A0A0i[((long unsigned int )3)][3];
+int __f45__A0A0i[][3];
+int __f46__A0A0i[((long unsigned int )3)][3];
+int __f47__A0A0i[][3];
+int __f48__A0A0i[((long unsigned int )3)][3];
+int *__f49__A0A0Pi[][3];
+int *__f50__A0A0Pi[((long unsigned int )3)][3];
+int **__f51__A0A0PPi[][3];
+int **__f52__A0A0PPi[((long unsigned int )3)][3];
+int *const *__f53__A0A0PCPi[][3];
+int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __f55__A0A0CPCPi[][3];
+int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+int *__f57__A0A0Pi[][3];
+int *__f58__A0A0Pi[((long unsigned int )3)][3];
+int **__f59__A0A0PPi[][3];
+int **__f60__A0A0PPi[((long unsigned int )3)][3];
+int *const *__f61__A0A0PCPi[][3];
+int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __f63__A0A0CPCPi[][3];
+int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+int __f65__Fi_i_(int );
+int __f66__Fi_i_(int );
+int *__f67__FPi_i_(int );
+int **__f68__FPPi_i_(int );
+int *const *__f69__FPCPi_i_(int );
+int *const *const __f70__FCPCPi_i_(int );
+int *__f71__FPi_i_(int );
+int **__f72__FPPi_i_(int );
+int *const *__f73__FPCPi_i_(int );
+int *const *const __f74__FCPCPi_i_(int );
+int (*__f75__PFi_i_)(int );
+int (**__f76__PPFi_i_)(int );
+int (*const *__f77__PCPFi_i_)(int );
+int (*const *const __f78__CPCPFi_i_)(int );
+int (*(*__f79__PFPFi___i_)(int ))();
+int (*(*const __f80__CPFPFi___i_)(int ))();
+int (*const (*const __f81__CPFCPFi___i_)(int ))();
+int *__cf3__Pi;
+int **__cf4__PPi;
+int *const *__cf5__PCPi;
+int *const *const __cf6__CPCPi;
+int __cf15__A0i[];
+int __cf16__A0i[((long unsigned int )10)];
+int *__cf19__A0Pi[];
+int *__cf20__A0Pi[((long unsigned int )10)];
+int **__cf21__A0PPi[];
+int **__cf22__A0PPi[((long unsigned int )10)];
+int *const *__cf23__A0PCPi[];
+int *const *__cf24__A0PCPi[((long unsigned int )10)];
+int *const *const __cf25__A0CPCPi[];
+int *const *const __cf26__A0CPCPi[((long unsigned int )10)];
+int (*__cf35__PA0i)[];
+int (*__cf36__PA0i)[10];
+int (**__cf37__PPA0i)[];
+int (**__cf38__PPA0i)[10];
+int (*const *__cf39__PCPA0i)[];
+int (*const *__cf40__PCPA0i)[10];
+int (*const *const __cf41__CPCPA0i)[];
+int (*const *const __cf42__CPCPA0i)[10];
+int __cf43__A0A0i[][3];
+int __cf44__A0A0i[((long unsigned int )3)][3];
+int *__cf49__A0A0Pi[][3];
+int *__cf50__A0A0Pi[((long unsigned int )3)][3];
+int **__cf51__A0A0PPi[][3];
+int **__cf52__A0A0PPi[((long unsigned int )3)][3];
+int *const __cf53__A0A0CPi[][3];
+int *const *__cf54__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __cf55__A0A0CPCPi[][3];
+int *const *const __cf56__A0A0CPCPi[((long unsigned int )3)][3];
+int __cf65__Fi_i_(int );
+int __cf66__Fi_i_(int );
+int *__cf67__FPi_i_(int );
+int **__cf68__FPPi_i_(int );
+int **const __cf69__FCPPi_i_(int );
+int *const *const __cf70__FCPCPi_i_(int );
+int (*(*(*(*(*__v3__PA0PA0PFPA0PA0i_PA0PA0iPA0PA0i_)[])[])(int (*(*)[])[], int (*(*)[])[]))[])[];
Index: src/Tests/Expect-e/gcc900407-1.txt
===================================================================
--- src/Tests/Expect-e/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-e/gcc900516-1.txt
===================================================================
--- src/Tests/Expect-e/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: !?
+
Index: src/Tests/Expect-e/gcc920301-1.txt
===================================================================
--- src/Tests/Expect-e/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,33 @@
+f: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of t: static open array of pointer to void 
+                  Null Statement
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: static array of unsigned int with dimension of           Cast of:
+constant expression 5 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+
+int __f__Fi__(){
+    static void *__t__A0Pv[];
+    __L1__: /* null statement */ ;
+
+}
+int __g__Fi__(){
+    static unsigned int __p__A0Ui[((long unsigned int )5)];
+}
Index: src/Tests/Expect-e/gcc920409-1.txt
===================================================================
--- src/Tests/Expect-e/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Expect-e/gcc920409-2.txt
===================================================================
--- src/Tests/Expect-e/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-e/gcc920410-2.txt
===================================================================
--- src/Tests/Expect-e/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Expect-e/gcc920501-1.txt
===================================================================
--- src/Tests/Expect-e/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Segmentation fault (core dumped)
Index: src/Tests/Expect-e/gcc920501-11.txt
===================================================================
--- src/Tests/Expect-e/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Expect-e/gcc920501-19.txt
===================================================================
--- src/Tests/Expect-e/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-e/report
===================================================================
--- src/Tests/Expect-e/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-e/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Expect-f/Abstype.txt
===================================================================
--- src/Tests/Expect-f/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of type U (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
Index: src/Tests/Expect-f/Attributes.txt
===================================================================
--- src/Tests/Expect-f/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Expect-f/Cast.txt
===================================================================
--- src/Tests/Expect-f/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+There are 1 alternatives
+Alternative 1 ==============
+long signed int 
+long double 
+pointer to function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
Index: src/Tests/Expect-f/CastError.txt
===================================================================
--- src/Tests/Expect-f/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,36 @@
+Error: Can't choose between alternatives for expression Cast of:
+  Name: f
+
+to:
+  char 
+Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: signed int 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: double 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: f
+
+to:
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+
Index: src/Tests/Expect-f/CharStringConstants.txt
===================================================================
--- src/Tests/Expect-f/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,248 @@
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
Index: src/Tests/Expect-f/Constant0-1.txt
===================================================================
--- src/Tests/Expect-f/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,112 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
Index: src/Tests/Expect-f/DeclarationErrors.txt
===================================================================
--- src/Tests/Expect-f/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-f/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Expect-f/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-f/Exception.txt
===================================================================
--- src/Tests/Expect-f/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?/?
+
Index: src/Tests/Expect-f/Expression.txt
===================================================================
--- src/Tests/Expect-f/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,101 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s 
+
+Error: No reasonable alternatives for expression Name: !?
+
+Error: No reasonable alternatives for expression Name: ~?
+
+Error: No reasonable alternatives for expression Name: +?
+
+Error: No reasonable alternatives for expression Name: -?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ++?
+
+Error: No reasonable alternatives for expression Name: --?
+
+Error: No reasonable alternatives for expression Name: ?++
+
+Error: No reasonable alternatives for expression Name: ?--
+
+Error: No reasonable alternatives for expression Name: ?+?
+
+Error: No reasonable alternatives for expression Name: ?-?
+
+Error: No reasonable alternatives for expression Name: ?*?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
+Error: No reasonable alternatives for expression Name: ?%?
+
+Error: No reasonable alternatives for expression Name: ?^?
+
+Error: No reasonable alternatives for expression Name: ?&?
+
+Error: No reasonable alternatives for expression Name: ?|?
+
+Error: No reasonable alternatives for expression Name: ?<?
+
+Error: No reasonable alternatives for expression Name: ?>?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: i
+
+Error: No reasonable alternatives for expression Name: ?==?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?<<?
+
+Error: No reasonable alternatives for expression Name: ?>>?
+
+Error: No reasonable alternatives for expression Name: ?<=?
+
+Error: No reasonable alternatives for expression Name: ?>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?-=?
+
+Error: No reasonable alternatives for expression Name: ?*=?
+
+Error: No reasonable alternatives for expression Name: ?/=?
+
+Error: No reasonable alternatives for expression Name: ?%=?
+
+Error: No reasonable alternatives for expression Name: ?&=?
+
+Error: No reasonable alternatives for expression Name: ?|=?
+
+Error: No reasonable alternatives for expression Name: ?^=?
+
+Error: No reasonable alternatives for expression Name: ?<<=?
+
+Error: No reasonable alternatives for expression Name: ?>>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Expect-f/Forall.txt
===================================================================
--- src/Tests/Expect-f/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,108 @@
+There are 2 alternatives
+Alternative 1 ==============
+signed int 
+
+Alternative 2 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to function
+    returning 
+      nothing 
+
+
+There are 2 alternatives
+Alternative 1 ==============
+char 
+
+Alternative 2 ==============
+
+There are 2 alternatives
+Alternative 1 ==============
+float 
+
+Alternative 2 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type P1 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: instance of type P1 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        j: instance of type P2 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      j: instance of type P2 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: twice
+...to: 
+    Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: min
+...to: 
+constant expression 4.0 double constant expression 3.0 double 
Index: src/Tests/Expect-f/Function.txt
===================================================================
--- src/Tests/Expect-f/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+There are 2 alternatives
+Alternative 1 ==============
+signed int 
+
+Alternative 2 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+signed int 
+
Index: src/Tests/Expect-f/Functions.txt
===================================================================
--- src/Tests/Expect-f/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,7 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-f/GccExtensions.txt
===================================================================
--- src/Tests/Expect-f/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,48 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s4 
+
Index: src/Tests/Expect-f/InferParam.txt
===================================================================
--- src/Tests/Expect-f/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
Index: src/Tests/Expect-f/Initialization.txt
===================================================================
--- src/Tests/Expect-f/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,316 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: tuple of types
+          signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      w: tuple of types
+        signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        v: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      v: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
Index: src/Tests/Expect-f/Initialization2.txt
===================================================================
--- src/Tests/Expect-f/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,368 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous3 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous5 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous7 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous8 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous10 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
Index: src/Tests/Expect-f/LabelledExit.txt
===================================================================
--- src/Tests/Expect-f/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
Index: src/Tests/Expect-f/Members.txt
===================================================================
--- src/Tests/Expect-f/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,64 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+lvalue signed int 
+
Index: src/Tests/Expect-f/Misc.txt
===================================================================
--- src/Tests/Expect-f/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
Index: src/Tests/Expect-f/MiscError.txt
===================================================================
--- src/Tests/Expect-f/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,83 @@
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Comma Expression:
+    Name: a
+
+    Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Ambiguous expression in sizeof operand: Name: b
+
Index: src/Tests/Expect-f/NamedParmArg.txt
===================================================================
--- src/Tests/Expect-f/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,35 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f2
+...to: 
+with designator:  Tuple:
+          Name: j
+
+          Name: i
+
+
Index: src/Tests/Expect-f/NumericConstants.txt
===================================================================
--- src/Tests/Expect-f/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,158 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+Error: No reasonable alternatives for expression Name: 1
+
Index: src/Tests/Expect-f/OccursError.txt
===================================================================
--- src/Tests/Expect-f/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+    Name: g
+
Index: src/Tests/Expect-f/Operators.txt
===================================================================
--- src/Tests/Expect-f/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,23 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 2 alternatives
+Alternative 1 ==============
+signed int 
+
+Alternative 2 ==============
+char 
+
Index: src/Tests/Expect-f/Quad.txt
===================================================================
--- src/Tests/Expect-f/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
Index: src/Tests/Expect-f/Rank2.txt
===================================================================
--- src/Tests/Expect-f/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,17 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: h
+...to: 
+    Applying untyped: 
+        Name: id
+    ...to: 
+        Applying untyped: 
+            Name: id
+        ...to: 
+            Applying untyped: 
+                Name: id
+            ...to: 
+                Name: 0
+
Index: src/Tests/Expect-f/Scope.txt
===================================================================
--- src/Tests/Expect-f/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,70 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of type x (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type t (not function type) 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      b: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: u
+    Name: y
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: z
+    Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+    Name: y
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: q
+    Name: y
+
+Error: No reasonable alternatives for expression Name: some_func
+
Index: src/Tests/Expect-f/ScopeErrors.txt
===================================================================
--- src/Tests/Expect-f/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Expect-f/ShortCircuit.txt
===================================================================
--- src/Tests/Expect-f/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
Index: src/Tests/Expect-f/Statement.txt
===================================================================
--- src/Tests/Expect-f/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+lvalue pointer to signed int 
+
Index: src/Tests/Expect-f/StructMember.txt
===================================================================
--- src/Tests/Expect-f/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,560 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m1: signed int with bitfield width constant expression 3 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m1: signed int with bitfield width constant expression 3 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m2: signed int with bitfield width constant expression 4 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m2: signed int with bitfield width constant expression 4 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m4: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m4: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m5: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m5: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m6: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m6: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m7: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m7: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m8: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m8: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m9: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m9: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m10: pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m11: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m12: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m12: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m13: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m13: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m14: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Name: __builtin_memcpy
+
Index: src/Tests/Expect-f/Subrange.txt
===================================================================
--- src/Tests/Expect-f/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: *?
+
Index: src/Tests/Expect-f/Switch.txt
===================================================================
--- src/Tests/Expect-f/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,20 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-f/Tuple.txt
===================================================================
--- src/Tests/Expect-f/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,258 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct inner 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f4: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f4: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: x: short signed int 
+    Variable Expression: w: signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: r
+    Tuple:
+              Name: x
+
+              Name: y
+
+              Name: z
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: a: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+    Tuple:
+      constant expression 4.6 double 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: c: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+                  Tuple:
+                          Name: c
+
+
+    Tuple:
+      constant expression 2 signed int 
+              Tuple:
+                      Name: a
+
+                      Name: b
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: c
+
+                  Name: d
+
+    Name: t1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Address of:
+  Tuple:
+    constant expression 3 signed int 
+    constant expression 4 signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: s
+    Tuple:
+      constant expression 11 signed int 
+      constant expression 12 signed int 
+      constant expression 13 signed int 
+      constant expression 3.14159 double 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: sp
+    Name: sp
+
+Error: No reasonable alternatives for expression Name: 0
+
Index: src/Tests/Expect-f/TypeGenerator.txt
===================================================================
--- src/Tests/Expect-f/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,133 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      next: pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S2 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      next: pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: my_list
+
+to:
+  instance of struct node 
+    with parameters
+      signed int 
+
+
Index: src/Tests/Expect-f/Typedef.txt
===================================================================
--- src/Tests/Expect-f/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,20 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
Index: src/Tests/Expect-f/gcc900407-1.txt
===================================================================
--- src/Tests/Expect-f/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?++
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-f/gcc920409-1.txt
===================================================================
--- src/Tests/Expect-f/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Expect-f/gcc920409-2.txt
===================================================================
--- src/Tests/Expect-f/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-f/gcc920410-2.txt
===================================================================
--- src/Tests/Expect-f/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-f/gcc920501-11.txt
===================================================================
--- src/Tests/Expect-f/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Expect-f/gcc920501-19.txt
===================================================================
--- src/Tests/Expect-f/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-f/report
===================================================================
--- src/Tests/Expect-f/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-f/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Expect-r/Abstype.txt
===================================================================
--- src/Tests/Expect-r/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1505 @@
+nameExpr is x
+decl is x: function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: x: function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: x: function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type T (not function type) 
+actuals are:
+                  Variable Expression: t: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: x: function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: t: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: x: function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T (not function type) 
+    _src: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type U (not function type) 
+    _src: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+    to:
+      pointer to pointer to signed int 
+    Cast of:
+      Variable Expression: _src: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T (not function type) 
+          _src: instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type U (not function type) 
+          _src: instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type U (not function type) 
+(types:
+    lvalue pointer to instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Variable Expression: u: instance of type U (not function type) 
+
+to:
+  instance of type U (not function type) 
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T (not function type) 
+    _src: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type U (not function type) 
+    _src: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+    to:
+      pointer to pointer to signed int 
+    Cast of:
+      Variable Expression: _src: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T (not function type) 
+          _src: instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type U (not function type) 
+          _src: instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+nameExpr is u_instance
+decl is u_instance: instance of type U (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: u: instance of type U (not function type) 
+
+  to:
+    instance of type U (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: u_instance: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u_instance: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: u_instance: instance of type U (not function type) 
+(types:
+    pointer to instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: u_instance: instance of type U (not function type) 
+(types:
+    pointer to instance of type U (not function type) 
+)
+Environment: 
+
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type U (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type U (not function type) 
+              _src: instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type U (not function type) 
+                  _src: instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type U (not function type) 
+actual type is pointer to instance of type U (not function type) 
+formal type is instance of type U (not function type) 
+actual type is lvalue instance of type U (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T (not function type) 
+              _src: instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T (not function type) 
+                  _src: instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type U (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to instance of type U (not function type) 
+actual expression:
+        Address of:
+          Variable Expression: u_instance: instance of type U (not function type) 
+--- results are
+        pointer to instance of type U (not function type) 
+
+converting pointer to instance of type U (not function type) 
+ to pointer to instance of type U (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: u: instance of type U (not function type) 
+--- results are
+        lvalue instance of type U (not function type) 
+
+converting lvalue instance of type U (not function type) 
+ to instance of type U (not function type) 
+cost is( 0, 0, 2 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of type U (not function type) 
+        _src: instance of type U (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: u_instance: instance of type U (not function type) 
+
+                  Cast of:
+            Variable Expression: u: instance of type U (not function type) 
+
+          to:
+            instance of type U (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 2 )
+alternatives before prune:
+Cost ( 0, 0, 2 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        _dst: pointer to instance of type U (not function type) 
+        _src: instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: u_instance: instance of type U (not function type) 
+
+      Cast of:
+      Variable Expression: u: instance of type U (not function type) 
+
+    to:
+      instance of type U (not function type) 
+
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          _dst: pointer to instance of type U (not function type) 
+          _src: instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: u_instance: instance of type U (not function type) 
+
+          Cast of:
+        Variable Expression: u: instance of type U (not function type) 
+
+      to:
+        instance of type U (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?++
+decl is ?++: function
+  with parameters
+    pointer to signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?++: function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?++: function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is *?
+decl is *?: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    pointer to instance of type T (not function type) 
+  returning 
+    lvalue instance of type T (not function type) 
+
+newExpr is Variable Expression: *?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: *?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type _0_T (not function type) 
+        returning 
+          lvalue instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: *?: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              pointer to instance of type T (not function type) 
+            returning 
+              lvalue instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  pointer to instance of type _0_T (not function type) 
+                returning 
+                  lvalue instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type _0_T (not function type) 
+actual type is lvalue instance of type U (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to forall
+    _1_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _1_DT (not function type) 
+    pointer to instance of type _1_DT (not function type) 
+  returning 
+    pointer to instance of type _1_DT (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T (not function type) 
+    _src: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type T (not function type) 
+    _src: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type U (not function type) 
+    _src: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+    to:
+      pointer to pointer to signed int 
+    Cast of:
+      Variable Expression: _src: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type U (not function type) 
+    _src: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 15 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 25 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: u: instance of type U (not function type) 
+--- results are
+        lvalue instance of type U (not function type) 
+
+converting lvalue instance of type U (not function type) 
+ to pointer to instance of type _0_T (not function type) 
+cost is( 0, 0, 1 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type _0_T (not function type) 
+actuals are:
+                  Cast of:
+            Variable Expression: u: instance of type U (not function type) 
+
+          to:
+            pointer to signed int 
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+cost of conversion is:( 0, 4, 1 )
+alternatives before prune:
+Cost ( 0, 4, 1 ): Application of
+  Variable Expression: *?: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        pointer to instance of type T (not function type) 
+      returning 
+        lvalue instance of type T (not function type) 
+
+to arguments
+      Cast of:
+      Variable Expression: u: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    lvalue instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 4, 1 ): Address of:
+  Application of
+    Variable Expression: *?: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type T (not function type) 
+        returning 
+          lvalue instance of type T (not function type) 
+
+  to arguments
+          Cast of:
+        Variable Expression: u: instance of type U (not function type) 
+
+      to:
+        pointer to signed int 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+(types:
+    pointer to signed int 
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 1 ): Address of:
+  Application of
+    Variable Expression: *?: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type T (not function type) 
+        returning 
+          lvalue instance of type T (not function type) 
+
+  to arguments
+          Cast of:
+        Variable Expression: u: instance of type U (not function type) 
+
+      to:
+        pointer to signed int 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+(types:
+    pointer to signed int 
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?++: function
+            with parameters
+              pointer to signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Application of
+            Variable Expression: *?: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                returning 
+                  lvalue instance of type T (not function type) 
+
+          to arguments
+                          Cast of:
+                Variable Expression: u: instance of type U (not function type) 
+
+              to:
+                pointer to signed int 
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+actuals are:
+                  Address of:
+            Application of
+              Variable Expression: *?: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                  returning 
+                    lvalue instance of type T (not function type) 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: u: instance of type U (not function type) 
+
+                to:
+                  pointer to signed int 
+
+            with inferred parameters:
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?++: function
+      with parameters
+        pointer to signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Application of
+        Variable Expression: *?: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              pointer to instance of type T (not function type) 
+            returning 
+              lvalue instance of type T (not function type) 
+
+      to arguments
+                  Cast of:
+            Variable Expression: u: instance of type U (not function type) 
+
+          to:
+            pointer to signed int 
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+
+(types:
+    signed int 
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?++: function
+        with parameters
+          pointer to signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Application of
+          Variable Expression: *?: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                pointer to instance of type T (not function type) 
+              returning 
+                lvalue instance of type T (not function type) 
+
+        to arguments
+                      Cast of:
+              Variable Expression: u: instance of type U (not function type) 
+
+            to:
+              pointer to signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Variable Expression: u: instance of type U (not function type) 
+
+to:
+  instance of type U (not function type) 
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: u: instance of type U (not function type) 
+
+to:
+  pointer to signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+to:
+  pointer to pointer to signed int 
+
Index: src/Tests/Expect-r/Array.txt
===================================================================
--- src/Tests/Expect-r/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,98 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 1, 0, 0 ): Cast of:
+constant expression 3.0 double 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __a1__A0i[];
+int __a2__A0i[*];
+double __a4__A0d[((long unsigned int )3.0)];
+int __m1__A0A0i[][3];
+int __m2__A0A0i[*][*];
+int __m4__A0A0i[((long unsigned int )3)][3];
+int __fred__Fi__(){
+    int __a1__A0i[];
+    int __a2__A0i[*];
+    int __a4__A0i[((long unsigned int )3)];
+    int __T__A0i[((long unsigned int )3)];
+}
+int __mary__Fi_PiCPiPiCPi_(int __T__Pi[3], int __p1__CPi[const 3], int __p2__Pi[static 3], int __p3__CPi[static const 3]){
+}
+int (*__tom__FPA0i__())[3]{
+}
+int (*__jane__FPFi_PiCPiPiCPi___())(int __T__Pi[3], int __p1__CPi[const 3], int __p2__Pi[static 3], int __p3__CPi[static const 3]){
+}
Index: src/Tests/Expect-r/AsmName.txt
===================================================================
--- src/Tests/Expect-r/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+extern int __x__i;
+int __fred__Fi_i_(int __x__i){
+    static int __y__i;
+    static int *__z__Pi;
+}
Index: src/Tests/Expect-r/Attributes.txt
===================================================================
--- src/Tests/Expect-r/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Expect-r/Cast.txt
===================================================================
--- src/Tests/Expect-r/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2235 @@
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            signed int 
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            signed int 
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 4 ): Cast of:
+  Variable Expression: f: char 
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Cast of:
+    Variable Expression: f: char 
+
+  to:
+    signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            signed int 
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Variable Expression: f: short signed int 
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Cast of:
+    Variable Expression: f: short signed int 
+
+  to:
+    signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: short signed int 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: f: function
+        accepting unspecified arguments
+      returning 
+        nothing 
+
+
+to:
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Cast of:
+    Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+  to:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: short signed int 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: short signed int 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: short signed int 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue short signed int 
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue double 
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue char 
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue short signed int 
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue double 
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue char 
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue short signed int 
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue double 
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue char 
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue short signed int 
+    lvalue short signed int 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue double 
+    lvalue short signed int 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue char 
+    lvalue short signed int 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue short signed int 
+    lvalue double 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue double 
+    lvalue double 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue char 
+    lvalue double 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue short signed int 
+    lvalue char 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue double 
+    lvalue char 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue char 
+    lvalue char 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue short signed int 
+    lvalue short signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue double 
+    lvalue short signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue char 
+    lvalue short signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue short signed int 
+    lvalue double 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue double 
+    lvalue double 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue char 
+    lvalue double 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue short signed int 
+    lvalue char 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue double 
+    lvalue char 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue char 
+    lvalue char 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue short signed int 
+    lvalue short signed int 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue double 
+    lvalue short signed int 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue char 
+    lvalue short signed int 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue short signed int 
+    lvalue double 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue double 
+    lvalue double 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue char 
+    lvalue double 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue short signed int 
+    lvalue char 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue double 
+    lvalue char 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue char 
+    lvalue char 
+    lvalue char 
+)
+Environment: 
+
+there are 64 alternatives before elimination
+there are 64 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 4 ): Cast of:
+  Tuple:
+          Variable Expression: f: short signed int 
+
+          Variable Expression: f: double 
+
+          Variable Expression: f: function
+            accepting unspecified arguments
+          returning 
+            nothing 
+
+
+
+to:
+  long signed int 
+  long double 
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        nothing 
+
+(types:
+    long signed int 
+    long double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 3 ): Cast of:
+  Cast of:
+    Tuple:
+              Variable Expression: f: short signed int 
+
+              Variable Expression: f: double 
+
+              Variable Expression: f: function
+              accepting unspecified arguments
+            returning 
+              nothing 
+
+
+
+  to:
+    long signed int 
+    long double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+char __f__c;
+void __f__F__(){
+    char __f__c;
+    double __f__d;
+    ((int )__f__c);
+    short __f__s;
+    ((int )__f__s);
+    ((void (*)())__f__F__);
+    ((long int ));
+}
Index: src/Tests/Expect-r/CastError.txt
===================================================================
--- src/Tests/Expect-r/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,197 @@
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: signed int 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            char 
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: signed int 
+newExpr is Variable Expression: f: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 1, 0, 0 ): Cast of:
+  Variable Expression: f: signed int 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Cast of:
+  Variable Expression: f: double 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+marking ambiguous
+there are 1 alternatives before elimination
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: signed int 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            char 
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: signed int 
+newExpr is Variable Expression: f: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+Error: Can't choose between alternatives for expression Cast of:
+  Name: f
+
+to:
+  char 
+Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: signed int 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: double 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: f
+
+to:
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+
Index: src/Tests/Expect-r/CharStringConstants.txt
===================================================================
--- src/Tests/Expect-r/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1242 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression ' ' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression ' ' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'a' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'a' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '"' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '"' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '_' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '_' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\a' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\a' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\b' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\b' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\e' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\e' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\f' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\f' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\n' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\n' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\r' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\r' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\t' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\t' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\v' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\v' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\'' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\'' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\"' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\"' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\?' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\?' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\\' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\\' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\0' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\0' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\377' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\377' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xf' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xf' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'aa' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'aa' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'a\na' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'a\na' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'a\0a' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'a\0a' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xfff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xfff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '_\377_' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '_\377_' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '_\xff_' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '_\xff_' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xffff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xffff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'a\xff34w' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'a\xff34w' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xffff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xffff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression " " array of char with dimension of constant expression 4 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression " " array of char with dimension of constant expression 4 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "a" array of char with dimension of constant expression 4 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "a" array of char with dimension of constant expression 4 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "'" array of char with dimension of constant expression 4 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "'" array of char with dimension of constant expression 4 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '_' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '_' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\a" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\a" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\b" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\b" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\e" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\e" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\f" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\f" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\n" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\n" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\r" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\r" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\t" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\t" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\v" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\v" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\'" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\'" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\"" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\"" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\?" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\?" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\\" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\\" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\0" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\0" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\377" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\377" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xf" array of char with dimension of constant expression 6 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xf" array of char with dimension of constant expression 6 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xff" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "" array of char with dimension of constant expression 3 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "" array of char with dimension of constant expression 3 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "aa" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "aa" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "a\na" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "a\na" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xff" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int main(){
+    ' ';
+    'a';
+    '"';
+    '_';
+    '\a';
+    '\b';
+    '\e';
+    '\f';
+    '\n';
+    '\r';
+    '\t';
+    '\v';
+    '\'';
+    '\"';
+    '\?';
+    '\\';
+    '\0';
+    '\377';
+    '\xf';
+    '\xff';
+    '';
+    'aa';
+    'a\na';
+    'a\0a';
+    '\xfff';
+    '_\377_';
+    '_\xff_';
+    '\xffff';
+    'a\xff34w';
+    '\xff';
+    '\xffff';
+    " ";
+    "a";
+    "'";
+    '_';
+    "\a";
+    "\b";
+    "\e";
+    "\f";
+    "\n";
+    "\r";
+    "\t";
+    "\v";
+    "\'";
+    "\"";
+    "\?";
+    "\\";
+    "\0";
+    "\377";
+    "\xf";
+    "\xff";
+    "";
+    "aa";
+    "a\na";
+    "a\0a";
+    "_\377_";
+    "_\xff_";
+    "\xff";
+    "\xffff";
+    "\xfff";
+    "a\xff34w";
+    "\xffff";
+}
Index: src/Tests/Expect-r/CommentMisc.txt
===================================================================
--- src/Tests/Expect-r/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,27 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __i__i;
+int __i__i;
+int __i__i;
+int __i__i;
+int main(){
+    int __x__A0i[((long unsigned int )10)];
+}
Index: src/Tests/Expect-r/Constant0-1.txt
===================================================================
--- src/Tests/Expect-r/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3010 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+(types:
+    instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+(types:
+    instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+(types:
+    instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+(types:
+    instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+(types:
+    instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous6 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+(types:
+    instance of struct __anonymous6 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
Index: src/Tests/Expect-r/Context.txt
===================================================================
--- src/Tests/Expect-r/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+;
+void __f__A1_0_0____operator_assign__PFt0_Pt0t0___q__PFt0_t0__F__(void (*_adapterF2tz_2tz_)(void (*)(), void *, void *), void (*_adapterF2tz_P2tz2tz_)(void (*)(), void *, void *, void *), long unsigned int z, void (*___operator_assign__PF2tz_P2tz2tz_)(), void (*__q__PF2tz_2tz_)(), ...){
+    ;
+    extern unsigned long x;
+    void *___operator_assign__F2tx_P2tx2tx_(void *___dst__P2tx, void *___src__2tx);
+    extern unsigned long y;
+    void *___operator_assign__F2ty_P2ty2ty_(void *___dst__P2ty, void *___src__2ty);
+}
Index: src/Tests/Expect-r/DeclarationErrors.txt
===================================================================
--- src/Tests/Expect-r/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-r/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Expect-r/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-r/Enum.txt
===================================================================
--- src/Tests/Expect-r/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,48 @@
+nameExpr is Mango
+decl is Mango: const instance of enum Fruits 
+newExpr is Variable Expression: Mango: const instance of enum Fruits 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: Mango: const instance of enum Fruits 
+(types:
+    const lvalue instance of enum Fruits 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: Mango: const instance of enum Fruits 
+
+to:
+  instance of enum Fruits 
+(types:
+    instance of enum Fruits 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+enum Colors
+{
+    __Red__C7eColors,
+    __Yellow__C7eColors,
+    __Pink__C7eColors,
+    __Blue__C7eColors,
+    __Purple__C7eColors,
+    __Orange__C7eColors,
+    __Green__C7eColors,
+}
+;
+void __f__F__(void){
+    enum Fruits
+{
+        __Apple__C7eFruits,
+        __Banana__C7eFruits,
+        __Pear__C7eFruits,
+        __Mango__C7eFruits,
+}
+;
+    enum Fruits __fruit__7eFruits = ((enum Fruits )__Mango__C7eFruits);
+}
Index: src/Tests/Expect-r/Exception.txt
===================================================================
--- src/Tests/Expect-r/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 3 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is ?/?
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
Index: src/Tests/Expect-r/Expression.txt
===================================================================
--- src/Tests/Expect-r/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,445 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s 
+    _src: instance of struct s 
+  returning 
+    instance of struct s 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct s 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s 
+      _src: instance of struct s 
+    returning 
+      instance of struct s 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s 
+      _src: instance of struct s 
+    returning 
+      instance of struct s 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s 
+          _src: instance of struct s 
+        returning 
+          instance of struct s 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct s 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s 
+              _src: instance of struct s 
+            returning 
+              instance of struct s 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s 
+                  _src: instance of struct s 
+                returning 
+                  instance of struct s 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct s 
+(types:
+    lvalue instance of struct s 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct s 
+
+to:
+  instance of struct s 
+(types:
+    instance of struct s 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is !?
+nameExpr is ~?
+nameExpr is +?
+nameExpr is -?
+nameExpr is *?
+nameExpr is ++?
+nameExpr is --?
+nameExpr is ?++
+nameExpr is ?--
+nameExpr is ?+?
+nameExpr is ?-?
+nameExpr is ?*?
+nameExpr is ?/?
+nameExpr is ?%?
+nameExpr is ?^?
+nameExpr is ?&?
+nameExpr is ?|?
+nameExpr is ?<?
+nameExpr is ?>?
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s 
+    _src: instance of struct s 
+  returning 
+    instance of struct s 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct s 
+
+to:
+  instance of struct s 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s 
+      _src: instance of struct s 
+    returning 
+      instance of struct s 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s 
+      _src: instance of struct s 
+    returning 
+      instance of struct s 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s 
+          _src: instance of struct s 
+        returning 
+          instance of struct s 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: i: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: i: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s 
+              _src: instance of struct s 
+            returning 
+              instance of struct s 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s 
+                  _src: instance of struct s 
+                returning 
+                  instance of struct s 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s 
+actual type is pointer to signed int 
+nameExpr is ?==?
+nameExpr is ?!=?
+nameExpr is ?<<?
+nameExpr is ?>>?
+nameExpr is ?<=?
+nameExpr is ?>=?
+nameExpr is ?!=?
+nameExpr is ?!=?
+nameExpr is *?
+nameExpr is ?+=?
+nameExpr is ?-=?
+nameExpr is ?*=?
+nameExpr is ?/=?
+nameExpr is ?%=?
+nameExpr is ?&=?
+nameExpr is ?|=?
+nameExpr is ?^=?
+nameExpr is ?<<=?
+nameExpr is ?>>=?
+nameExpr is ?!=?
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s 
+
+Error: No reasonable alternatives for expression Name: !?
+
+Error: No reasonable alternatives for expression Name: ~?
+
+Error: No reasonable alternatives for expression Name: +?
+
+Error: No reasonable alternatives for expression Name: -?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ++?
+
+Error: No reasonable alternatives for expression Name: --?
+
+Error: No reasonable alternatives for expression Name: ?++
+
+Error: No reasonable alternatives for expression Name: ?--
+
+Error: No reasonable alternatives for expression Name: ?+?
+
+Error: No reasonable alternatives for expression Name: ?-?
+
+Error: No reasonable alternatives for expression Name: ?*?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
+Error: No reasonable alternatives for expression Name: ?%?
+
+Error: No reasonable alternatives for expression Name: ?^?
+
+Error: No reasonable alternatives for expression Name: ?&?
+
+Error: No reasonable alternatives for expression Name: ?|?
+
+Error: No reasonable alternatives for expression Name: ?<?
+
+Error: No reasonable alternatives for expression Name: ?>?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: i
+
+Error: No reasonable alternatives for expression Name: ?==?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?<<?
+
+Error: No reasonable alternatives for expression Name: ?>>?
+
+Error: No reasonable alternatives for expression Name: ?<=?
+
+Error: No reasonable alternatives for expression Name: ?>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?-=?
+
+Error: No reasonable alternatives for expression Name: ?*=?
+
+Error: No reasonable alternatives for expression Name: ?/=?
+
+Error: No reasonable alternatives for expression Name: ?%=?
+
+Error: No reasonable alternatives for expression Name: ?&=?
+
+Error: No reasonable alternatives for expression Name: ?|=?
+
+Error: No reasonable alternatives for expression Name: ?^=?
+
+Error: No reasonable alternatives for expression Name: ?<<=?
+
+Error: No reasonable alternatives for expression Name: ?>>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Expect-r/Forall.txt
===================================================================
--- src/Tests/Expect-r/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15904 @@
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 5 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Variable Expression: x: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: x: signed int 
+
+bindings are:
+        ( _0_T ) -> signed int 
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: x: signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: x: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> signed int 
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Variable Expression: x: signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is y
+decl is y: pointer to function
+  returning 
+    nothing 
+
+newExpr is Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue pointer to function
+  returning 
+    nothing 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to function
+  returning 
+    nothing 
+
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 25 ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: y: pointer to function
+            returning 
+              nothing 
+
+--- results are
+        lvalue pointer to function
+            returning 
+              nothing 
+
+
+converting lvalue pointer to function
+          returning 
+            nothing 
+
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to function
+                returning 
+                  nothing 
+
+            pointer to function
+                returning 
+                  nothing 
+
+          returning 
+            pointer to function
+                returning 
+                  nothing 
+
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: y: pointer to function
+              returning 
+                nothing 
+
+
+bindings are:
+        ( _0_T ) -> pointer to function
+          returning 
+            nothing 
+
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: y: pointer to function
+        returning 
+          nothing 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: y: pointer to function
+          returning 
+            nothing 
+
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to pointer to function
+            returning 
+              nothing 
+
+        pointer to function
+            returning 
+              nothing 
+
+      returning 
+        pointer to function
+            returning 
+              nothing 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is z
+decl is z: char 
+newExpr is Variable Expression: z: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue char 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 21 ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: z: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: z: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+actual expression:
+        Variable Expression: z: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to char 
+            char 
+          returning 
+            char 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: z: char 
+
+bindings are:
+        ( _0_T ) -> char 
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: z: char 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: z: char 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> char 
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Cast of:
+        Variable Expression: z: char 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is w
+decl is w: float 
+newExpr is Variable Expression: w: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: w: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: w: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue float 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 9 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: w: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: w: float 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: w: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: w: float 
+
+bindings are:
+        ( _0_T ) -> float 
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: w: float 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: w: float 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> float 
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: w: float 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to float 
+        float 
+      returning 
+        float 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> float 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is h
+decl is h: function
+  with parameters
+    p: pointer to function
+        returning 
+          nothing 
+
+  returning 
+    nothing 
+
+newExpr is Variable Expression: h: function
+    with parameters
+      p: pointer to function
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: h: function
+    with parameters
+      p: pointer to function
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          p: pointer to function
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is y
+decl is y: pointer to function
+  returning 
+    nothing 
+
+newExpr is Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue pointer to function
+  returning 
+    nothing 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to function
+  returning 
+    nothing 
+
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 25 ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: y: pointer to function
+            returning 
+              nothing 
+
+--- results are
+        lvalue pointer to function
+            returning 
+              nothing 
+
+
+converting lvalue pointer to function
+          returning 
+            nothing 
+
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to function
+                returning 
+                  nothing 
+
+            pointer to function
+                returning 
+                  nothing 
+
+          returning 
+            pointer to function
+                returning 
+                  nothing 
+
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: y: pointer to function
+              returning 
+                nothing 
+
+
+bindings are:
+        ( _0_T ) -> pointer to function
+          returning 
+            nothing 
+
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: y: pointer to function
+        returning 
+          nothing 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: y: pointer to function
+        returning 
+          nothing 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        returning 
+          nothing 
+
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: h: function
+            with parameters
+              p: pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  p: pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to function
+  returning 
+    nothing 
+
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: f: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: y: pointer to function
+                returning 
+                  nothing 
+
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+--- results are
+        pointer to function
+            returning 
+              nothing 
+
+
+converting pointer to function
+          returning 
+            nothing 
+
+ to pointer to function
+          returning 
+            nothing 
+
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        p: pointer to function
+            returning 
+              nothing 
+
+actuals are:
+                  Application of
+            Variable Expression: f: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Variable Expression: y: pointer to function
+                  returning 
+                    nothing 
+
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to pointer to function
+                    returning 
+                      nothing 
+
+                pointer to function
+                    returning 
+                      nothing 
+
+              returning 
+                pointer to function
+                    returning 
+                      nothing 
+
+
+
+bindings are:
+        ( _0_T ) -> pointer to function
+          returning 
+            nothing 
+ (no widening)
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: h: function
+      with parameters
+        p: pointer to function
+            returning 
+              nothing 
+
+      returning 
+        nothing 
+
+to arguments
+      Application of
+      Variable Expression: f: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: y: pointer to function
+            returning 
+              nothing 
+
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+
+(types:
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+ (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: h: function
+        with parameters
+          p: pointer to function
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+  to arguments
+          Application of
+        Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+      to arguments
+                  Variable Expression: y: pointer to function
+              returning 
+                nothing 
+
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to pointer to function
+                returning 
+                  nothing 
+
+            pointer to function
+                returning 
+                  nothing 
+
+          returning 
+            pointer to function
+                returning 
+                  nothing 
+
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+ (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type U (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+          instance of type _0_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+          _2_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _2_U (not function type) 
+                    instance of type _2_U (not function type) 
+                  returning 
+                    instance of type _2_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+          instance of type _2_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: float 
+newExpr is Variable Expression: y: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                  _2_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _2_U (not function type) 
+                            instance of type _2_U (not function type) 
+                          returning 
+                            instance of type _2_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _1_T (not function type) 
+                  instance of type _2_U (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is lvalue signed int 
+formal type is instance of type _2_U (not function type) 
+actual type is lvalue float 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 56 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with declaration 9 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 52 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 5 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                  instance of type _0_T (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue float 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 45 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 9 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: y: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to instance of type _2_U (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+        instance of type _2_U (not function type) 
+actuals are:
+                  Variable Expression: x: signed int 
+
+                  Variable Expression: y: float 
+
+bindings are:
+        ( _1_T ) -> signed int 
+        ( _2_U ) -> float 
+cost of conversion is:( 0, 8, 0 )
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: y: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+        instance of type _0_T (not function type) 
+actuals are:
+                  Cast of:
+            Variable Expression: x: signed int 
+
+          to:
+            float 
+
+                  Variable Expression: y: float 
+
+bindings are:
+        ( _0_T ) -> float 
+cost of conversion is:( 0, 5, 5 )
+alternatives before prune:
+Cost ( 0, 8, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+        instance of type U (not function type) 
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: x: signed int 
+
+      Variable Expression: y: float 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+)
+Environment:   ( _1_T ) -> signed int 
+  ( _2_U ) -> float 
+
+
+Cost ( 0, 5, 5 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: x: signed int 
+
+    to:
+      float 
+
+      Variable Expression: y: float 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+)
+Environment:   ( _0_T ) -> float 
+
+
+cost ( 0, 5, 5 ) beats ( 0, 8, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          nothing 
+
+  to arguments
+          Cast of:
+        Variable Expression: x: signed int 
+
+      to:
+        float 
+
+          Variable Expression: y: float 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to float 
+        float 
+      returning 
+        float 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> float 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type U (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+          instance of type _0_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+          _2_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _2_U (not function type) 
+                    instance of type _2_U (not function type) 
+                  returning 
+                    instance of type _2_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+          instance of type _2_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is z
+decl is z: pointer to signed int 
+newExpr is Variable Expression: z: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+nameExpr is w
+decl is w: pointer to float 
+newExpr is Variable Expression: w: pointer to float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: w: pointer to float 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: w: pointer to float 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                  _2_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _2_U (not function type) 
+                            instance of type _2_U (not function type) 
+                          returning 
+                            instance of type _2_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _1_T (not function type) 
+                  instance of type _2_U (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is lvalue pointer to signed int 
+formal type is instance of type _2_U (not function type) 
+actual type is lvalue pointer to float 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+success!
+satisfying assertion 56 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with declaration 17 ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+success!
+satisfying assertion 52 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 13 ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                  instance of type _0_T (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to signed int 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to float 
+actual expression:
+        Variable Expression: z: pointer to signed int 
+--- results are
+        lvalue pointer to signed int 
+
+converting lvalue pointer to signed int 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: w: pointer to float 
+--- results are
+        lvalue pointer to float 
+
+converting lvalue pointer to float 
+ to instance of type _2_U (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to signed int 
+            pointer to signed int 
+          returning 
+            pointer to signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to float 
+            pointer to float 
+          returning 
+            pointer to float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+        instance of type _2_U (not function type) 
+actuals are:
+                  Variable Expression: z: pointer to signed int 
+
+                  Variable Expression: w: pointer to float 
+
+bindings are:
+        ( _1_T ) -> pointer to signed int 
+        ( _2_U ) -> pointer to float 
+cost of conversion is:( 0, 8, 0 )
+alternatives before prune:
+Cost ( 0, 8, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+        instance of type U (not function type) 
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: z: pointer to signed int 
+
+      Variable Expression: w: pointer to float 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+  ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+)
+Environment:   ( _1_T ) -> pointer to signed int 
+  ( _2_U ) -> pointer to float 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+          U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type U (not function type) 
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+          instance of type U (not function type) 
+        returning 
+          nothing 
+
+  to arguments
+          Variable Expression: z: pointer to signed int 
+
+          Variable Expression: w: pointer to float 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to pointer to signed int 
+        pointer to signed int 
+      returning 
+        pointer to signed int 
+
+    ?=?: function
+      with parameters
+        pointer to pointer to float 
+        pointer to float 
+      returning 
+        pointer to float 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _1_T ) -> pointer to signed int 
+  ( _2_U ) -> pointer to float 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type U (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+          instance of type _0_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+          _2_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _2_U (not function type) 
+                    instance of type _2_U (not function type) 
+                  returning 
+                    instance of type _2_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+          instance of type _2_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is z
+decl is z: pointer to signed int 
+newExpr is Variable Expression: z: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                  _2_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _2_U (not function type) 
+                            instance of type _2_U (not function type) 
+                          returning 
+                            instance of type _2_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _1_T (not function type) 
+                  instance of type _2_U (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is lvalue signed int 
+formal type is instance of type _2_U (not function type) 
+actual type is lvalue pointer to signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 52 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 5 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+success!
+satisfying assertion 56 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with declaration 13 ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                  instance of type _0_T (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to signed int 
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: z: pointer to signed int 
+--- results are
+        lvalue pointer to signed int 
+
+converting lvalue pointer to signed int 
+ to instance of type _2_U (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to signed int 
+            pointer to signed int 
+          returning 
+            pointer to signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+        instance of type _2_U (not function type) 
+actuals are:
+                  Variable Expression: x: signed int 
+
+                  Variable Expression: z: pointer to signed int 
+
+bindings are:
+        ( _1_T ) -> signed int 
+        ( _2_U ) -> pointer to signed int 
+cost of conversion is:( 0, 8, 0 )
+alternatives before prune:
+Cost ( 0, 8, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+        instance of type U (not function type) 
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: x: signed int 
+
+      Variable Expression: z: pointer to signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+)
+Environment:   ( _1_T ) -> signed int 
+  ( _2_U ) -> pointer to signed int 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+          U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type U (not function type) 
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+          instance of type U (not function type) 
+        returning 
+          nothing 
+
+  to arguments
+          Variable Expression: x: signed int 
+
+          Variable Expression: z: pointer to signed int 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+    ?=?: function
+      with parameters
+        pointer to pointer to signed int 
+        pointer to signed int 
+      returning 
+        pointer to signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _1_T ) -> signed int 
+  ( _2_U ) -> pointer to signed int 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is left
+decl is left: instance of type T (not function type) 
+newExpr is Variable Expression: left: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: left: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: left: instance of type T (not function type) 
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+nameExpr is temp
+decl is temp: instance of type T (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: left: instance of type T (not function type) 
+
+  to:
+    instance of type T (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: temp: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: temp: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: temp: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: temp: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is left
+decl is left: instance of type T (not function type) 
+newExpr is Variable Expression: left: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: left: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: left: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: temp: instance of type T (not function type) 
+--- results are
+        pointer to instance of type T (not function type) 
+
+converting pointer to instance of type T (not function type) 
+ to pointer to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: left: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: temp: instance of type T (not function type) 
+
+                  Variable Expression: left: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: temp: instance of type T (not function type) 
+
+      Variable Expression: left: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: temp: instance of type T (not function type) 
+
+          Variable Expression: left: instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+nameExpr is left
+decl is left: instance of type T (not function type) 
+newExpr is Variable Expression: left: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: left: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: left: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: left: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is right
+decl is right: instance of type T (not function type) 
+newExpr is Variable Expression: right: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: right: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: right: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: left: instance of type T (not function type) 
+--- results are
+        pointer to instance of type T (not function type) 
+
+converting pointer to instance of type T (not function type) 
+ to pointer to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: right: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: left: instance of type T (not function type) 
+
+                  Variable Expression: right: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: left: instance of type T (not function type) 
+
+      Variable Expression: right: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: left: instance of type T (not function type) 
+
+          Variable Expression: right: instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+nameExpr is right
+decl is right: instance of type T (not function type) 
+newExpr is Variable Expression: right: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: right: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: right: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: right: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is temp
+decl is temp: instance of type T (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: left: instance of type T (not function type) 
+
+  to:
+    instance of type T (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: temp: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: temp: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: temp: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: right: instance of type T (not function type) 
+--- results are
+        pointer to instance of type T (not function type) 
+
+converting pointer to instance of type T (not function type) 
+ to pointer to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: temp: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: right: instance of type T (not function type) 
+
+                  Variable Expression: temp: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: right: instance of type T (not function type) 
+
+      Variable Expression: temp: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: right: instance of type T (not function type) 
+
+          Variable Expression: temp: instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type P1 (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue instance of type P1 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type P1 (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type P1 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type P1 (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type P1 (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type P1 (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type P1 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type P1 (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type P1 (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T3 (not function type) 
+              _src: instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T3 (not function type) 
+                  _src: instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T2 (not function type) 
+              _src: instance of type T2 (not function type) 
+            returning 
+              instance of type T2 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T2 (not function type) 
+                  _src: instance of type T2 (not function type) 
+                returning 
+                  instance of type T2 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T1 (not function type) 
+              _src: instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T1 (not function type) 
+                  _src: instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type P1 (not function type) 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  j: instance of type P2 (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue instance of type P2 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    j: instance of type P2 (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type P2 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    j: instance of type P2 (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type P2 (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  j: instance of type P2 (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type P2 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  j: instance of type P2 (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type P2 (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T3 (not function type) 
+              _src: instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T3 (not function type) 
+                  _src: instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T2 (not function type) 
+              _src: instance of type T2 (not function type) 
+            returning 
+              instance of type T2 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T2 (not function type) 
+                  _src: instance of type T2 (not function type) 
+                returning 
+                  instance of type T2 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T1 (not function type) 
+              _src: instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T1 (not function type) 
+                  _src: instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type P2 (not function type) 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+(types:
+    lvalue pointer to instance of type T2 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type w3 (not function type) 
+          _src: instance of type w3 (not function type) 
+        returning 
+          instance of type w3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 11 alternatives before elimination
+there are 11 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+(types:
+    lvalue pointer to instance of type w3 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+decl is 0: const instance of type T (not function type) 
+newExpr is Variable Expression: 0: const instance of type T (not function type) 
+
+decl is 0: const instance of type T1 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T1 (not function type) 
+
+decl is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+newExpr is Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+
+decl is 0: const instance of type T3 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T3 (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: 0: const instance of type T (not function type) 
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type w3 (not function type) 
+          _src: instance of type w3 (not function type) 
+        returning 
+          instance of type w3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+nameExpr is total
+decl is total: instance of type T (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: 0: const instance of type T (not function type) 
+
+  to:
+    instance of type T (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: total: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: total: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: total: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: total: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: const instance of type T (not function type) 
+newExpr is Variable Expression: 0: const instance of type T (not function type) 
+
+decl is 0: const instance of type T1 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T1 (not function type) 
+
+decl is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+newExpr is Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+
+decl is 0: const instance of type T3 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T3 (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type w3 (not function type) 
+              _src: instance of type w3 (not function type) 
+            returning 
+              instance of type w3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type w3 (not function type) 
+                  _src: instance of type w3 (not function type) 
+                returning 
+                  instance of type w3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T3 (not function type) 
+              _src: instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T3 (not function type) 
+                  _src: instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T2 (not function type) 
+              _src: instance of type T2 (not function type) 
+            returning 
+              instance of type T2 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T2 (not function type) 
+                  _src: instance of type T2 (not function type) 
+                returning 
+                  instance of type T2 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T1 (not function type) 
+              _src: instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T1 (not function type) 
+                  _src: instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is const lvalue instance of type T3 (not function type) 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is const lvalue instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is const lvalue instance of type T1 (not function type) 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is const lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: total: instance of type T (not function type) 
+--- results are
+        pointer to instance of type T (not function type) 
+
+converting pointer to instance of type T (not function type) 
+ to pointer to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: const instance of type T (not function type) 
+--- results are
+        const lvalue instance of type T (not function type) 
+
+converting const lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: total: instance of type T (not function type) 
+
+                  Variable Expression: 0: const instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: total: instance of type T (not function type) 
+
+      Variable Expression: 0: const instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: total: instance of type T (not function type) 
+
+          Variable Expression: 0: const instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type w3 (not function type) 
+          _src: instance of type w3 (not function type) 
+        returning 
+          instance of type w3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: i: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: i: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: const instance of type T (not function type) 
+newExpr is Variable Expression: 0: const instance of type T (not function type) 
+
+decl is 0: const instance of type T1 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T1 (not function type) 
+
+decl is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+newExpr is Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+
+decl is 0: const instance of type T3 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T3 (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is const lvalue instance of type T3 (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is const lvalue instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is const lvalue instance of type T1 (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is const lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to signed int 
+formal type is pointer to char 
+actual type is pointer to signed int 
+formal type is pointer to char 
+actual type is pointer to signed int 
+formal type is pointer to char 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to signed int 
+formal type is pointer to pointer to signed int 
+actual type is pointer to signed int 
+formal type is pointer to pointer to signed int 
+actual type is pointer to signed int 
+formal type is pointer to pointer to signed int 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to signed int 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to signed int 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to signed int 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type w3 (not function type) 
+              _src: instance of type w3 (not function type) 
+            returning 
+              instance of type w3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type w3 (not function type) 
+                  _src: instance of type w3 (not function type) 
+                returning 
+                  instance of type w3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T3 (not function type) 
+              _src: instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T3 (not function type) 
+                  _src: instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T2 (not function type) 
+              _src: instance of type T2 (not function type) 
+            returning 
+              instance of type T2 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T2 (not function type) 
+                  _src: instance of type T2 (not function type) 
+                returning 
+                  instance of type T2 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T1 (not function type) 
+              _src: instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T1 (not function type) 
+                  _src: instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to signed int 
+nameExpr is total
+decl is total: instance of type T (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: 0: const instance of type T (not function type) 
+
+  to:
+    instance of type T (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: total: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: total: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: total: instance of type T (not function type) 
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?+?
+decl is ?+?: function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      instance of type T1 (not function type) 
+      instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?+?: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+    returning 
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+
+
+decl is ?+?: function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      instance of type T3 (not function type) 
+      instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?+?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?+?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      instance of type T1 (not function type) 
+      instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+    returning 
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+
+(types:
+    pointer to function
+        with parameters
+          instance of type T2 (not function type) 
+            with parameters
+              instance of type P1 (not function type) 
+              instance of type P2 (not function type) 
+
+          instance of type T2 (not function type) 
+            with parameters
+              instance of type P1 (not function type) 
+              instance of type P2 (not function type) 
+
+        returning 
+          instance of type T2 (not function type) 
+            with parameters
+              instance of type P1 (not function type) 
+              instance of type P2 (not function type) 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      instance of type T3 (not function type) 
+      instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type T3 (not function type) 
+          instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              instance of type T3 (not function type) 
+              instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  instance of type T3 (not function type) 
+                  instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T3 (not function type) 
+actual type is lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              instance of type T2 (not function type) 
+                with parameters
+                  instance of type P1 (not function type) 
+                  instance of type P2 (not function type) 
+
+              instance of type T2 (not function type) 
+                with parameters
+                  instance of type P1 (not function type) 
+                  instance of type P2 (not function type) 
+
+            returning 
+              instance of type T2 (not function type) 
+                with parameters
+                  instance of type P1 (not function type) 
+                  instance of type P2 (not function type) 
+
+
+(types:
+            pointer to function
+                with parameters
+                  instance of type T2 (not function type) 
+                    with parameters
+                      instance of type P1 (not function type) 
+                      instance of type P2 (not function type) 
+
+                  instance of type T2 (not function type) 
+                    with parameters
+                      instance of type P1 (not function type) 
+                      instance of type P2 (not function type) 
+
+                returning 
+                  instance of type T2 (not function type) 
+                    with parameters
+                      instance of type P1 (not function type) 
+                      instance of type P2 (not function type) 
+
+
+)
+        Environment: 
+formal type is instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+actual type is lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              instance of type T1 (not function type) 
+              instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  instance of type T1 (not function type) 
+                  instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T1 (not function type) 
+actual type is lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Variable Expression: t: instance of type T (not function type) 
+
+                  Variable Expression: t: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?+?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: t: instance of type T (not function type) 
+
+      Variable Expression: t: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?+?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      signed int 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?<?
+decl is ?<?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?<?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?<?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      signed int 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is t1
+decl is t1: instance of type T (not function type) 
+newExpr is Variable Expression: t1: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t1: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is t2
+decl is t2: instance of type T (not function type) 
+newExpr is Variable Expression: t2: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t2: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t2: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?<?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t1: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: t2: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Variable Expression: t1: instance of type T (not function type) 
+
+                  Variable Expression: t2: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?<?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: t1: instance of type T (not function type) 
+
+      Variable Expression: t2: instance of type T (not function type) 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?<?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: t1: instance of type T (not function type) 
+
+      Variable Expression: t2: instance of type T (not function type) 
+
+(types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: const instance of type T (not function type) 
+newExpr is Variable Expression: 0: const instance of type T (not function type) 
+
+decl is 0: const instance of type T1 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T1 (not function type) 
+
+decl is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+newExpr is Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+
+decl is 0: const instance of type T3 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T3 (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is signed int 
+formal type is instance of type T (not function type) 
+actual type is signed int 
+formal type is instance of type T (not function type) 
+actual type is signed int 
+formal type is instance of type T (not function type) 
+actual type is signed int 
+nameExpr is 1
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 2 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is swap
+decl is swap: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    left: instance of type T (not function type) 
+    right: instance of type T (not function type) 
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of temp: instance of type T (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Variable Expression: left: instance of type T (not function type) 
+
+          to:
+            instance of type T (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: temp: instance of type T (not function type) 
+
+                          Variable Expression: left: instance of type T (not function type) 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: left: instance of type T (not function type) 
+
+                          Variable Expression: right: instance of type T (not function type) 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: right: instance of type T (not function type) 
+
+                          Variable Expression: temp: instance of type T (not function type) 
+
+          with environment:
+            Types:
+            Non-types:
+
+
+newExpr is Variable Expression: swap: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: swap: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          left: instance of type _0_T (not function type) 
+          right: instance of type _0_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+nameExpr is twice
+decl is twice: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        0: const instance of type T (not function type) 
+        ?+?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?++: pointer to function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?+=?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?+?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: twice: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: twice: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              0: const instance of type _0_T (not function type) 
+              ?+?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?++: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?+=?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          t: instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type w3 (not function type) 
+          _src: instance of type w3 (not function type) 
+        returning 
+          instance of type w3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+nameExpr is f
+decl is f: float 
+newExpr is Variable Expression: f: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: f: float 
+(types:
+    pointer to float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: f: float 
+(types:
+    pointer to float 
+)
+Environment: 
+
+nameExpr is min
+decl is min: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        0: const instance of type T (not function type) 
+        ?!=?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+        ?<?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+
+  function
+  with parameters
+    t1: instance of type T (not function type) 
+    t2: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Conditional expression on: 
+  Cast of:
+    Applying untyped: 
+        Name: ?!=?
+    ...to: 
+        Applying untyped: 
+            Name: ?<?
+        ...to: 
+            Name: t1
+            Name: t2
+        Name: 0
+
+  to:
+    signed int 
+First alternative:
+  Name: t1
+Second alternative:
+  Name: t2
+
+
+
+
+newExpr is Variable Expression: min: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: min: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              0: const instance of type _0_T (not function type) 
+              ?!=?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    signed int 
+
+              ?<?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    signed int 
+
+
+        function
+        with parameters
+          t1: instance of type _0_T (not function type) 
+          t2: instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4.0 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 4.0 double (types:
+    double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3.0 double (types:
+    double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: min: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  0: const instance of type T (not function type) 
+                  ?!=?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        signed int 
+
+                  ?<?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        signed int 
+
+
+            function
+            with parameters
+              t1: instance of type T (not function type) 
+              t2: instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      0: const instance of type _0_T (not function type) 
+                      ?!=?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            signed int 
+
+                      ?<?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            signed int 
+
+
+                function
+                with parameters
+                  t1: instance of type _0_T (not function type) 
+                  t2: instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is double 
+formal type is instance of type _0_T (not function type) 
+actual type is double 
+need assertions:
+?!=?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            signed int 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)0: const instance of type _0_T (not function type) (used)?<?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            signed int 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?!=?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?!=?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    signed int 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    signed int 
+
+nameExpr is sum
+decl is sum: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        0: const instance of type T (not function type) 
+        ?+?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?++: pointer to function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?+=?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    n: signed int 
+    a: pointer to instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+      Declaration of total: instance of type T (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Variable Expression: 0: const instance of type T (not function type) 
+
+          to:
+            instance of type T (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: total: instance of type T (not function type) 
+
+                          Variable Expression: 0: const instance of type T (not function type) 
+
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of i: signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 0
+
+          condition: 
+            Cast of:
+              Applying untyped: 
+                  Name: ?!=?
+              ...to: 
+                  Applying untyped: 
+                      Name: ?<?
+                  ...to: 
+                      Name: i
+                      Name: n
+                  Name: 0
+
+            to:
+              signed int 
+
+          increment: 
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: 1
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Address of:
+                        Name: total
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Name: total
+                          Applying untyped: 
+                              Name: ?[?]
+                          ...to: 
+                              Name: a
+                              Name: i
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: total: instance of type T (not function type) 
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: sum: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: pointer to instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: sum: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: pointer to instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              0: const instance of type _0_T (not function type) 
+              ?+?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?++: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?+=?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          n: signed int 
+          a: pointer to instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is a
+decl is a: array of signed int with dimension of Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+with environment:
+  Types:
+  Non-types:
+
+newExpr is Variable Expression: a: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+
+decl is a: pointer to instance of type T (not function type) 
+newExpr is Variable Expression: a: pointer to instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: pointer to instance of type T (not function type) 
+(types:
+    lvalue pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: pointer to instance of type T (not function type) 
+(types:
+    lvalue pointer to instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: sum: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  0: const instance of type T (not function type) 
+                  ?+?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  ?++: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  ?+=?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              n: signed int 
+              a: pointer to instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      0: const instance of type _0_T (not function type) 
+                      ?+?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      ?++: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      ?+=?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  n: signed int 
+                  a: pointer to instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+formal type is pointer to instance of type _0_T (not function type) 
+actual type is lvalue pointer to signed int 
+need assertions:
+?+?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?+=?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)0: const instance of type _0_T (not function type) (used)?++: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?+?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?+?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+formal type is signed int 
+actual type is signed int 
+formal type is pointer to instance of type _0_T (not function type) 
+actual type is lvalue pointer to instance of type T (not function type) 
+need assertions:
+?+?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?+=?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)0: const instance of type _0_T (not function type) (used)?++: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?+?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?+?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 160 ?+?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 160 ?+?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 155 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 196 ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: assertion is ?+=?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?+=?: function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?+=?: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+inferRecursive: candidate is ?+=?: function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?+=?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 167 ?+=?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 167 ?+=?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: assertion is 0: const instance of type _0_T (not function type) 
+inferRecursive: candidate is 0: const instance of type T (not function type) 
+unifying const instance of type _0_T (not function type)  with const instance of type T (not function type) 
+success!
+satisfying assertion 156 0: const instance of type _0_T (not function type)  with declaration 197 0: const instance of type T (not function type) 
+inferRecursive: assertion is ?++: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?++: function
+  with parameters
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?++: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+inferRecursive: candidate is ?++: function
+  with parameters
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?++: pointer to function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 163 ?++: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 163 ?++: pointer to function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: candidate is 0: const instance of type T1 (not function type) 
+unifying const instance of type _0_T (not function type)  with const instance of type T1 (not function type) 
+inferRecursive: candidate is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+unifying const instance of type _0_T (not function type)  with const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+inferRecursive: candidate is 0: const instance of type T3 (not function type) 
+unifying const instance of type _0_T (not function type)  with const instance of type T3 (not function type) 
+actual expression:
+constant expression 10 signed int --- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: pointer to instance of type T (not function type) 
+--- results are
+        lvalue pointer to instance of type T (not function type) 
+
+converting lvalue pointer to instance of type T (not function type) 
+ to pointer to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting const instance of type T (not function type) 
+ to const instance of type _0_T (not function type) 
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        n: signed int 
+        a: pointer to instance of type _0_T (not function type) 
+actuals are:
+        constant expression 10 signed int 
+                  Variable Expression: a: pointer to instance of type T (not function type) 
+
+bindings are:
+        ( _0_T ) -> instance of type T (not function type)  (no widening)
+cost of conversion is:( 0, 13, 0 )
+alternatives before prune:
+Cost ( 0, 13, 0 ): Application of
+  Variable Expression: sum: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            0: const instance of type T (not function type) 
+            ?+?: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            ?++: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            ?+=?: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        n: signed int 
+        a: pointer to instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+  constant expression 10 signed int 
+      Variable Expression: a: pointer to instance of type T (not function type) 
+
+with inferred parameters:
+  ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+  0: const instance of type T (not function type) 
+  ?+?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+  ?++: pointer to function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+  ?+=?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> instance of type T (not function type)  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: sum: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+              0: const instance of type T (not function type) 
+              ?+?: pointer to function
+                  with parameters
+                    instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+              ?++: pointer to function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+              ?+=?: pointer to function
+                  with parameters
+                    instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          n: signed int 
+          a: pointer to instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+    constant expression 10 signed int 
+          Variable Expression: a: pointer to instance of type T (not function type) 
+
+  with inferred parameters:
+    ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+    0: const instance of type T (not function type) 
+    ?+?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+    ?++: pointer to function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+    ?+=?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> instance of type T (not function type)  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type P1 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: instance of type P1 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        j: instance of type P2 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      j: instance of type P2 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+to:
+  pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+to:
+  pointer to instance of type T2 (not function type) 
+    with parameters
+      signed int 
+      signed int 
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?!=?
+...to: 
+    Applying untyped: 
+        Name: ?<?
+    ...to: 
+        Name: t1
+        Name: t2
+    Name: 0
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Name: x
+
+Error: No reasonable alternatives for expression Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: min
+...to: 
+constant expression 4.0 double constant expression 3.0 double 
Index: src/Tests/Expect-r/Function.txt
===================================================================
--- src/Tests/Expect-r/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4957 @@
+nameExpr is f
+decl is f: function
+  with parameters
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: float 
+newExpr is Variable Expression: a: float 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is float 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Cast of:
+          Variable Expression: a: signed int 
+
+        to:
+          signed int 
+--- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Cast of:
+          Variable Expression: a: signed int 
+
+        to:
+          signed int 
+--- results are
+        signed int 
+
+converting signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Cast of:
+              Variable Expression: a: signed int 
+
+            to:
+              signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: f: function
+      with parameters
+        float 
+      returning 
+        float 
+
+to arguments
+      Cast of:
+      Cast of:
+        Variable Expression: a: signed int 
+
+      to:
+        signed int 
+
+    to:
+      float 
+
+(types:
+    float 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Cast of:
+        Variable Expression: a: signed int 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+  with parameters
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: float 
+newExpr is Variable Expression: a: float 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is float 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: float 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+actual expression:
+        Variable Expression: a: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Variable Expression: a: float 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: float 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: f: function
+      with parameters
+        float 
+      returning 
+        float 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      float 
+
+(types:
+    float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        float 
+      returning 
+        float 
+
+to arguments
+      Variable Expression: a: float 
+
+(types:
+    float 
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 0, 0, 5 )
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Cast of:
+    Application of
+      Variable Expression: f: function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+    to arguments
+              Variable Expression: a: signed int 
+
+
+  to:
+    signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is p
+decl is p: tuple of types
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  double 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+            float 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: p: tuple of types
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+            double 
+
+--- results are
+        lvalue signed int 
+        lvalue double 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue double 
+ to signed int 
+cost is( 1, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: p: tuple of types
+                signed int 
+                double 
+
+
+          to:
+            signed int 
+            signed int 
+
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            char 
+
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: p: tuple of types
+              signed int 
+              signed int 
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          signed int 
+          signed int 
+          float 
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: p: tuple of types
+          signed int 
+          double 
+
+
+    to:
+      signed int 
+      signed int 
+
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+marking ambiguous
+cost ( 0, 0, 4 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Application of
+    Variable Expression: r: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+  to arguments
+          Variable Expression: p: tuple of types
+          signed int 
+          signed int 
+          signed int 
+
+
+          Cast of:
+        Variable Expression: q: tuple of types
+            char 
+
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is p
+decl is p: tuple of types
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  double 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+)
+Environment: 
+
+marking ambiguous
+there are 15 alternatives before elimination
+there are 14 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+actual expression:
+        Tuple:
+                      Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+
+
+                      Variable Expression: p: tuple of types
+                signed int 
+                double 
+
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue signed int 
+        lvalue double 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue double 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Tuple:
+                              Variable Expression: q: tuple of types
+                    signed int 
+                    signed int 
+
+
+                              Variable Expression: p: tuple of types
+                    signed int 
+                    double 
+
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Tuple:
+                      Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+                      Variable Expression: p: tuple of types
+                signed int 
+
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Tuple:
+                              Variable Expression: q: tuple of types
+                    signed int 
+                    signed int 
+                    float 
+
+
+                              Variable Expression: p: tuple of types
+                    signed int 
+
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Tuple:
+                      Variable Expression: q: tuple of types
+                char 
+
+
+                      Variable Expression: p: tuple of types
+                signed int 
+                signed int 
+                signed int 
+
+
+--- results are
+        lvalue char 
+        lvalue signed int 
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Tuple:
+                              Variable Expression: q: tuple of types
+                    char 
+
+
+                              Variable Expression: p: tuple of types
+                    signed int 
+                    signed int 
+                    signed int 
+
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Tuple:
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+                  Variable Expression: p: tuple of types
+              signed int 
+              double 
+
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Tuple:
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+              float 
+
+
+                  Variable Expression: p: tuple of types
+              signed int 
+
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Tuple:
+                  Variable Expression: q: tuple of types
+              char 
+
+
+                  Variable Expression: p: tuple of types
+              signed int 
+              signed int 
+              signed int 
+
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+marking ambiguous
+cost ( 0, 0, 4 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Application of
+    Variable Expression: r: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+  to arguments
+          Cast of:
+        Tuple:
+                      Variable Expression: q: tuple of types
+                char 
+
+
+                      Variable Expression: p: tuple of types
+                signed int 
+                signed int 
+                signed int 
+
+
+
+      to:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is p
+decl is p: tuple of types
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  double 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+            float 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: p: tuple of types
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+            double 
+
+--- results are
+        lvalue signed int 
+        lvalue double 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue double 
+ to signed int 
+cost is( 1, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: p: tuple of types
+                signed int 
+                double 
+
+
+          to:
+            signed int 
+            signed int 
+
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            char 
+
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: p: tuple of types
+              signed int 
+              signed int 
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          signed int 
+          signed int 
+          float 
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: p: tuple of types
+          signed int 
+          double 
+
+
+    to:
+      signed int 
+      signed int 
+
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+marking ambiguous
+cost ( 0, 0, 4 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: q: tuple of types
+            char 
+
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+            float 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 4 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+            float 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            char 
+
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 4 )
+alternatives before prune:
+Cost ( 1, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          signed int 
+          signed int 
+          float 
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: q: tuple of types
+          signed int 
+          signed int 
+          float 
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 1, 0, 4 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: r: function
+              with parameters
+                signed int 
+                signed int 
+                signed int 
+                signed int 
+              returning 
+                signed int 
+                signed int 
+
+        to arguments
+                      Variable Expression: p: tuple of types
+                signed int 
+                signed int 
+                signed int 
+
+
+                      Cast of:
+              Variable Expression: q: tuple of types
+                  char 
+
+
+            to:
+              signed int 
+
+--- results are
+        signed int 
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Application of
+          Variable Expression: r: function
+              with parameters
+                signed int 
+                signed int 
+                signed int 
+                signed int 
+              returning 
+                signed int 
+                signed int 
+
+        to arguments
+                      Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+
+
+                      Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+
+
+--- results are
+        signed int 
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Application of
+            Variable Expression: r: function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+          to arguments
+                          Variable Expression: p: tuple of types
+                  signed int 
+                  signed int 
+                  signed int 
+
+
+                          Cast of:
+                Variable Expression: q: tuple of types
+                    char 
+
+
+              to:
+                signed int 
+
+
+                  Application of
+            Variable Expression: r: function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+          to arguments
+                          Variable Expression: q: tuple of types
+                  signed int 
+                  signed int 
+
+
+                          Variable Expression: q: tuple of types
+                  signed int 
+                  signed int 
+
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Application of
+      Variable Expression: r: function
+          with parameters
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+          returning 
+            signed int 
+            signed int 
+
+    to arguments
+              Variable Expression: p: tuple of types
+            signed int 
+            signed int 
+            signed int 
+
+
+              Cast of:
+          Variable Expression: q: tuple of types
+              char 
+
+
+        to:
+          signed int 
+
+
+      Application of
+      Variable Expression: r: function
+          with parameters
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+          returning 
+            signed int 
+            signed int 
+
+    to arguments
+              Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+
+              Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Application of
+    Variable Expression: r: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+  to arguments
+          Application of
+        Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+      to arguments
+                  Variable Expression: p: tuple of types
+              signed int 
+              signed int 
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+
+          Application of
+        Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+      to arguments
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+cfa-cpp: GenPoly/Box.cc:398: void GenPoly::{anonymous}::Pass1::boxParams(ApplicationExpr*, FunctionType*, std::list<Expression*>::iterator&, const TyVarMap&): Assertion `arg != appExpr->get_args().end()' failed.
+Aborted (core dumped)
Index: src/Tests/Expect-r/Functions.txt
===================================================================
--- src/Tests/Expect-r/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,91 @@
+nameExpr is *?
+nameExpr is g
+decl is g: pointer to function
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: pointer to function
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: pointer to function
+            returning 
+              nothing 
+
+(types:
+            lvalue pointer to function
+                returning 
+                  nothing 
+
+)
+        Environment: 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+Case +++++++++++++
+formals are:
+actuals are:
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: pointer to function
+      returning 
+        nothing 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: pointer to function
+        returning 
+          nothing 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-r/GccExtensions.txt
===================================================================
--- src/Tests/Expect-r/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,908 @@
+nameExpr is s1
+decl is s1: signed int 
+newExpr is Variable Expression: s1: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: s1: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is s1
+decl is s1: signed int 
+newExpr is Variable Expression: s1: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: s1: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s2 
+    _src: instance of struct s2 
+  returning 
+    instance of struct s2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct s2 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s2 
+          _src: instance of struct s2 
+        returning 
+          instance of struct s2 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct s2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s2 
+              _src: instance of struct s2 
+            returning 
+              instance of struct s2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s2 
+                  _src: instance of struct s2 
+                returning 
+                  instance of struct s2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s2 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct s2 
+(types:
+    lvalue instance of struct s2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct s2 
+
+to:
+  instance of struct s2 
+(types:
+    instance of struct s2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s2 
+    _src: instance of struct s2 
+  returning 
+    instance of struct s2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct s2 
+
+to:
+  instance of struct s2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s3 
+    _src: instance of struct s3 
+  returning 
+    instance of struct s3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s3 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct s3 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s3 
+      _src: instance of struct s3 
+    returning 
+      instance of struct s3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s2 
+          _src: instance of struct s2 
+        returning 
+          instance of struct s2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s3 
+      _src: instance of struct s3 
+    returning 
+      instance of struct s3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s3 
+          _src: instance of struct s3 
+        returning 
+          instance of struct s3 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct s3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s3 
+              _src: instance of struct s3 
+            returning 
+              instance of struct s3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s3 
+                  _src: instance of struct s3 
+                returning 
+                  instance of struct s3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s2 
+              _src: instance of struct s2 
+            returning 
+              instance of struct s2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s2 
+                  _src: instance of struct s2 
+                returning 
+                  instance of struct s2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s2 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct s3 
+(types:
+    lvalue instance of struct s3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct s3 
+
+to:
+  instance of struct s3 
+(types:
+    instance of struct s3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s2 
+    _src: instance of struct s2 
+  returning 
+    instance of struct s2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct s2 
+
+to:
+  instance of struct s2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s3 
+    _src: instance of struct s3 
+  returning 
+    instance of struct s3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct s3 
+
+to:
+  instance of struct s3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s3 
+      _src: instance of struct s3 
+    returning 
+      instance of struct s3 
+
+
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s4 
+    _src: instance of struct s4 
+  returning 
+    instance of struct s4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s4 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct s4 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s4 
+      _src: instance of struct s4 
+    returning 
+      instance of struct s4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s2 
+          _src: instance of struct s2 
+        returning 
+          instance of struct s2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s3 
+      _src: instance of struct s3 
+    returning 
+      instance of struct s3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s3 
+          _src: instance of struct s3 
+        returning 
+          instance of struct s3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s4 
+      _src: instance of struct s4 
+    returning 
+      instance of struct s4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s4 
+          _src: instance of struct s4 
+        returning 
+          instance of struct s4 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct s4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s4 
+              _src: instance of struct s4 
+            returning 
+              instance of struct s4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s4 
+                  _src: instance of struct s4 
+                returning 
+                  instance of struct s4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s3 
+              _src: instance of struct s3 
+            returning 
+              instance of struct s3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s3 
+                  _src: instance of struct s3 
+                returning 
+                  instance of struct s3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s2 
+              _src: instance of struct s2 
+            returning 
+              instance of struct s2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s2 
+                  _src: instance of struct s2 
+                returning 
+                  instance of struct s2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s2 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct s4 
+(types:
+    lvalue instance of struct s4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct s4 
+
+to:
+  instance of struct s4 
+(types:
+    instance of struct s4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s4 
+
Index: src/Tests/Expect-r/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Expect-r/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,583 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int main(){
+    int __f1__i;
+    int __f2__i;
+    int *__f3__Pi;
+    int **__f4__PPi;
+    int *const *__f5__PCPi;
+    int *const *const __f6__CPCPi;
+    int *__f7__Pi;
+    int **__f8__PPi;
+    int *const *__f9__PCPi;
+    int *const *const __f10__CPCPi;
+    int *__f11__Pi;
+    int **__f12__PPi;
+    int *const *__f13__PCPi;
+    int *const *const __f14__CPCPi;
+    int __f15__A0i[];
+    int __f16__A0i[((long unsigned int )10)];
+    int __f17__A0i[];
+    int __f18__A0i[((long unsigned int )10)];
+    int *__f19__A0Pi[];
+    int *__f20__A0Pi[((long unsigned int )10)];
+    int **__f21__A0PPi[];
+    int **__f22__A0PPi[((long unsigned int )10)];
+    int *const *__f23__A0PCPi[];
+    int *const *__f24__A0PCPi[((long unsigned int )10)];
+    int *const *const __f25__A0CPCPi[];
+    int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+    int *__f27__A0Pi[];
+    int *__f28__A0Pi[((long unsigned int )10)];
+    int **__f29__A0PPi[];
+    int **__f30__A0PPi[((long unsigned int )10)];
+    int *const *__f31__A0PCPi[];
+    int *const *__f32__A0PCPi[((long unsigned int )10)];
+    int *const *const __f33__A0CPCPi[];
+    int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+    int *__f35__A0Pi[];
+    int *__f36__A0Pi[((long unsigned int )10)];
+    int **__f37__A0PPi[];
+    int **__f38__A0PPi[((long unsigned int )10)];
+    int *const *__f39__A0PCPi[];
+    int *const *__f40__A0PCPi[((long unsigned int )10)];
+    int *const *const __f41__A0CPCPi[];
+    int *const *const __f42__A0CPCPi[((long unsigned int )10)];
+    int __f43__A0A0i[][3];
+    int __f44__A0A0i[((long unsigned int )3)][3];
+    int __f45__A0A0i[][3];
+    int __f46__A0A0i[((long unsigned int )3)][3];
+    int __f47__A0A0i[][3];
+    int __f48__A0A0i[((long unsigned int )3)][3];
+    int *__f49__A0A0Pi[][3];
+    int *__f50__A0A0Pi[((long unsigned int )3)][3];
+    int **__f51__A0A0PPi[][3];
+    int **__f52__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f53__A0A0PCPi[][3];
+    int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f55__A0A0CPCPi[][3];
+    int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+    int *__f57__A0A0Pi[][3];
+    int *__f58__A0A0Pi[((long unsigned int )3)][3];
+    int **__f59__A0A0PPi[][3];
+    int **__f60__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f61__A0A0PCPi[][3];
+    int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f63__A0A0CPCPi[][3];
+    int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+    int __f65__Fi_i_(int );
+    int __f66__Fi_i_(int );
+    int *__f67__FPi_i_(int );
+    int **__f68__FPPi_i_(int );
+    int *const *__f69__FPCPi_i_(int );
+    int *const *const __f70__FCPCPi_i_(int );
+    int *__f71__FPi_i_(int );
+    int **__f72__FPPi_i_(int );
+    int *const *__f73__FPCPi_i_(int );
+    int *const *const __f74__FCPCPi_i_(int );
+    int (*__f75__PFi_i_)(int );
+    int (**__f76__PPFi_i_)(int );
+    int (*const *__f77__PCPFi_i_)(int );
+    int (*const *const __f78__CPCPFi_i_)(int );
+    int (*(*__f79__PFPFi___i_)(int ))();
+    int (*(*const __f80__CPFPFi___i_)(int ))();
+    int (*const (*const __f81__CPFCPFi___i_)(int ))();
+}
Index: src/Tests/Expect-r/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Expect-r/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+int __fred__Fi_iiPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPiPiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPA0iPA0iPA0iPA0iPA0iPA0iPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPFi_i_PFi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFi_i_PPFi_i_PCPFi_i_CPCPFi_i_PFPFi___i_CPFPFi___i_CPFCPFi___i_CPiCPiPiCPiCPiCPiPiCPiCPPiCPPiPPPiCPPCPiCPCPCPiCPPiCPPiPPPiCPPCPiCPCPCPiCPA0iCPA0iPA0iCPA0iCPA0iCPA0iPA0iCPA0iCPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPiCPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPi_(int __f1__i, int __f2__i, int *__f3__Pi, int **__f4__PPi, int *const *__f5__PCPi, int *const *const __f6__CPCPi, int *__f7__Pi, int **__f8__PPi, int *const *__f9__PCPi, int *const *const __f10__CPCPi, int *__f11__Pi, int **__f12__PPi, int *const *__f13__PCPi, int *const *const __f14__CPCPi, int *__f15__Pi, int __f16__Pi[10], int *__f17__Pi, int __f18__Pi[10], int **__f19__PPi, int *__f20__PPi[10], int ***__f21__PPPi, int **__f22__PPPi[10], int *const **__f23__PPCPi, int *const *__f24__PPCPi[10], int *const *const *__f25__PCPCPi, int *const *const __f26__PCPCPi[10], int **__f27__PPi, int *__f28__PPi[10], int ***__f29__PPPi, int **__f30__PPPi[10], int *const **__f31__PPCPi, int *const *__f32__PPCPi[10], int *const *const *__f33__PCPCPi, int *const *const __f34__PCPCPi[10], int **__f35__PPi, int *__f36__PPi[10], int ***__f37__PPPi, int **__f38__PPPi[10], int *const **__f39__PPCPi, int *const *__f40__PPCPi[10], int *const *const *__f41__PCPCPi, int *const *const __f42__PCPCPi[10], int (*__f43__PA0i)[3], int __f44__PA0i[3][3], int (*__f45__PA0i)[3], int __f46__PA0i[3][3], int (*__f47__PA0i)[3], int __f48__PA0i[3][3], int *(*__f49__PA0Pi)[3], int *__f50__PA0Pi[3][3], int **(*__f51__PA0PPi)[3], int **__f52__PA0PPi[3][3], int *const *(*__f53__PA0PCPi)[3], int *const *__f54__PA0PCPi[3][3], int *const *const (*__f55__PA0CPCPi)[3], int *const *const __f56__PA0CPCPi[3][3], int *(*__f57__PA0Pi)[3], int *__f58__PA0Pi[3][3], int **(*__f59__PA0PPi)[3], int **__f60__PA0PPi[3][3], int *const *(*__f61__PA0PCPi)[3], int *const *__f62__PA0PCPi[3][3], int *const *const (*__f63__PA0CPCPi)[3], int *const *const __f64__PA0CPCPi[3][3], int (*__f65__PFi_i_)(int ), int (*__f66__PFi_i_)(int ), int *(*__f67__PFPi_i_)(int ), int **(*__f68__PFPPi_i_)(int ), int *const *(*__f69__PFPCPi_i_)(int ), int *const *const (*__f70__PFCPCPi_i_)(int ), int *(*__f71__PFPi_i_)(int ), int **(*__f72__PFPPi_i_)(int ), int *const *(*__f73__PFPCPi_i_)(int ), int *const *const (*__f74__PFCPCPi_i_)(int ), int (*__f75__PFi_i_)(int ), int (**__f76__PPFi_i_)(int ), int (*const *__f77__PCPFi_i_)(int ), int (*const *const __f78__CPCPFi_i_)(int ), int (*(*__f79__PFPFi___i_)(int ))(), int (*(*const __f80__CPFPFi___i_)(int ))(), int (*const (*const __f81__CPFCPFi___i_)(int ))(), int __f82__CPi[const *], int __f83__CPi[const 3], int __f84__Pi[static 3], int __f85__CPi[static const 3], int __f86__CPi[const *], int __f87__CPi[const 3], int __f88__Pi[static 3], int __f89__CPi[static const 3], int *__f90__CPPi[const *], int *__f91__CPPi[const 3], int **__f92__PPPi[static 3], int *const *__f93__CPPCPi[static const 3], int *const *const __f94__CPCPCPi[static const 3], int *__f95__CPPi[const *], int *__f96__CPPi[const 3], int **__f97__PPPi[static 3], int *const *__f98__CPPCPi[static const 3], int *const *const __f99__CPCPCPi[static const 3], int __f100__CPA0i[const *][3], int __f101__CPA0i[const 3][3], int __f102__PA0i[static 3][3], int __f103__CPA0i[static const 3][3], int __f104__CPA0i[const *][3], int __f105__CPA0i[const 3][3], int __f106__PA0i[static 3][3], int __f107__CPA0i[static const 3][3], int *__f108__CPA0Pi[const *][3], int *__f109__CPA0Pi[const 3][3], int **__f110__PA0PPi[static 3][3], int *const *__f111__CPA0PCPi[static const 3][3], int *const *const __f112__CPA0CPCPi[static const 3][3], int *__f113__CPA0Pi[const *][3], int *__f114__CPA0Pi[const 3][3], int **__f115__PA0PPi[static 3][3], int *const *__f116__CPA0PCPi[static const 3][3], int *const *const __f117__CPA0CPCPi[static const 3][3]){
+}
Index: src/Tests/Expect-r/InferParam.txt
===================================================================
--- src/Tests/Expect-r/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2917 @@
+nameExpr is i
+decl is i: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+        f: pointer to function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+newExpr is Variable Expression: g: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+          _1_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_U (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+              f: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _1_U (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                  _1_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_U (not function type) 
+                            instance of type _1_U (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+                      f: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _1_U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)f: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+success!
+satisfying assertion 20 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 12 ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: assertion is f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+success!
+satisfying assertion 23 f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 32 f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 16 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 20 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 8 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: assertion is f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+success!
+satisfying assertion 23 f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 29 f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 16 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 20 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: assertion is f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to double 
+            double 
+          returning 
+            double 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+          returning 
+            double 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: a: signed int 
+
+bindings are:
+        ( _0_T ) -> signed int 
+        ( _1_U ) -> double  (no widening)
+cost of conversion is:( 0, 9, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: a: signed int 
+
+bindings are:
+        ( _0_T ) -> signed int 
+        ( _1_U ) -> float  (no widening)
+cost of conversion is:( 0, 9, 0 )
+alternatives before prune:
+Cost ( 0, 9, 0 ): Application of
+  Variable Expression: g: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: a: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+(types:
+    instance of type _1_U (not function type) 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> double  (no widening)
+
+
+Cost ( 0, 9, 0 ): Application of
+  Variable Expression: g: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: a: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+(types:
+    instance of type _1_U (not function type) 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> float  (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 9, 0 ): Application of
+  Variable Expression: g: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: a: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+(types:
+    float 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> float  (no widening)
+
+
+Cost ( 0, 9, 0 ): Application of
+  Variable Expression: g: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: a: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+(types:
+    double 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> double  (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: i: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is float 
+actual type is double 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: g: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+                U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type U (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+                    f: pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+        to arguments
+                      Variable Expression: a: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+          ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+          f: function
+            with parameters
+              signed int 
+            returning 
+              float 
+
+--- results are
+        float 
+
+converting float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Application of
+            Variable Expression: g: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                  U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type U (not function type) 
+                            instance of type U (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+                      f: pointer to function
+                          with parameters
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+          to arguments
+                          Variable Expression: a: signed int 
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+            ?=?: function
+              with parameters
+                pointer to float 
+                float 
+              returning 
+                float 
+
+            f: function
+              with parameters
+                signed int 
+              returning 
+                float 
+
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+        ( _1_U ) -> float  (no widening)
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Application of
+          Variable Expression: g: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+                U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type U (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+                    f: pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+        to arguments
+                      Variable Expression: a: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+          ?=?: function
+            with parameters
+              pointer to double 
+              double 
+            returning 
+              double 
+
+          f: function
+            with parameters
+              signed int 
+            returning 
+              double 
+
+--- results are
+        double 
+
+converting double 
+ to float 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Application of
+              Variable Expression: g: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+                        f: pointer to function
+                            with parameters
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+            to arguments
+                              Variable Expression: a: signed int 
+
+            with inferred parameters:
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+              ?=?: function
+                with parameters
+                  pointer to double 
+                  double 
+                returning 
+                  double 
+
+              f: function
+                with parameters
+                  signed int 
+                returning 
+                  double 
+
+
+          to:
+            float 
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+        ( _1_U ) -> double  (no widening)
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: i: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Application of
+      Variable Expression: g: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+            U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type U (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+                f: pointer to function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+    to arguments
+              Variable Expression: a: signed int 
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+      ?=?: function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+      f: function
+        with parameters
+          signed int 
+        returning 
+          float 
+
+
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> float  (no widening)
+
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: i: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Application of
+        Variable Expression: g: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: a: signed int 
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+        ?=?: function
+          with parameters
+            pointer to double 
+            double 
+          returning 
+            double 
+
+        f: function
+          with parameters
+            signed int 
+          returning 
+            double 
+
+
+    to:
+      float 
+
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> double  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: i: function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+  to arguments
+          Application of
+        Variable Expression: g: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: a: signed int 
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+        ?=?: function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+        f: function
+          with parameters
+            signed int 
+          returning 
+            float 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> float  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is k
+decl is k: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+        f: pointer to function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+        j: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+newExpr is Variable Expression: k: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          j: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: k: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          j: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+          _1_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_U (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+              f: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+              j: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _1_U (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: k: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  j: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                  _1_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_U (not function type) 
+                            instance of type _1_U (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+                      f: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+                      j: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _1_U (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _1_U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+need assertions:
+j: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)f: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is j: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is j: function
+  with parameters
+    signed int 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 62 j: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 47 j: function
+  with parameters
+    signed int 
+    float 
+  returning 
+    float 
+
+inferRecursive: assertion is f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+success!
+satisfying assertion 58 f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 29 f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 55 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 8 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 51 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: b: signed int 
+
+bindings are:
+        ( _0_T ) -> signed int 
+        ( _1_U ) -> float  (no widening)
+cost of conversion is:( 0, 12, 0 )
+alternatives before prune:
+Cost ( 0, 12, 0 ): Application of
+  Variable Expression: k: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            j: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: b: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+  j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+(types:
+    instance of type _1_U (not function type) 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> float  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 12, 0 ): Application of
+  Variable Expression: k: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            j: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: b: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+  j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+(types:
+    float 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> float  (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: i: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: k: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+                U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type U (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+                    f: pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+                    j: pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+        to arguments
+                      Variable Expression: b: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+          ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+          f: function
+            with parameters
+              signed int 
+            returning 
+              float 
+
+          j: function
+            with parameters
+              signed int 
+              float 
+            returning 
+              float 
+
+--- results are
+        float 
+
+converting float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Application of
+            Variable Expression: k: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                  U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type U (not function type) 
+                            instance of type U (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+                      f: pointer to function
+                          with parameters
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+                      j: pointer to function
+                          with parameters
+                            instance of type T (not function type) 
+                            instance of type U (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+          to arguments
+                          Variable Expression: b: signed int 
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+            ?=?: function
+              with parameters
+                pointer to float 
+                float 
+              returning 
+                float 
+
+            f: function
+              with parameters
+                signed int 
+              returning 
+                float 
+
+            j: function
+              with parameters
+                signed int 
+                float 
+              returning 
+                float 
+
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+        ( _1_U ) -> float  (no widening)
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: i: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Application of
+      Variable Expression: k: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+            U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type U (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+                f: pointer to function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+                j: pointer to function
+                    with parameters
+                      instance of type T (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+    to arguments
+              Variable Expression: b: signed int 
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+      ?=?: function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+      f: function
+        with parameters
+          signed int 
+        returning 
+          float 
+
+      j: function
+        with parameters
+          signed int 
+          float 
+        returning 
+          float 
+
+
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> float  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: i: function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+  to arguments
+          Application of
+        Variable Expression: k: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  j: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: b: signed int 
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+        ?=?: function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+        f: function
+          with parameters
+            signed int 
+          returning 
+            float 
+
+        j: function
+          with parameters
+            signed int 
+            float 
+          returning 
+            float 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> float  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_assign__Fi_Pii_(int *, int );
+float ___operator_assign__Ff_Pff_(float *, float );
+double ___operator_assign__Fd_Pdd_(double *, double );
+void __g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void *, void *);
+float __f__Ff_i_(int );
+double __f__Fd_i_(int );
+void __i__F_f_(float );
+void __h__F__(){
+    int __a__i;
+    float _temp0;
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
+    }
+    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    __i__F_f_((__g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(_adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), (&_temp0), (&__a__i)) , _temp0));
+}
+;
+float __j__Ff_if_(int , float );
+void __k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(void (*_adapterF2tU_2tT2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void (*__j__PF2tU_2tT2tU_)(), void *, void *);
+void __l__F__(){
+    int __b__i;
+    float _temp1;
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
+    }
+    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    void _adapterFf_if_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(int , float ))_adaptee)((*((int *)_p0)), (*((float *)_p1))));
+    }
+    __i__F_f_((__k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(_adapterFf_if_, _adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), ((void (*)())__j__Ff_if_), (&_temp1), (&__b__i)) , _temp1));
+}
Index: src/Tests/Expect-r/Initialization.txt
===================================================================
--- src/Tests/Expect-r/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15674 @@
+nameExpr is 0
+nameExpr is 0
+nameExpr is 0
+nameExpr is 0
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 20 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 20 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 20 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 20 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: tuple of types
+    signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: tuple of types
+      signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: tuple of types
+      signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: tuple of types
+    signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: tuple of types
+    signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 2 signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _index0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _index0: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _index0: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+(types:
+    instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 1
+nameExpr is 1
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+(types:
+    instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 4 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _index1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _index1: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _index1: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is 0
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+(types:
+    instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+(types:
+    instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    z: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    z: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous4 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous4 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous4 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to instance of struct __anonymous4 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous4 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous4 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to instance of struct __anonymous4 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous4 
+formal type is instance of struct __anonymous4 
+actual type is lvalue instance of struct __anonymous4 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous4 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous4 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous4 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous4 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous4 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct point 
+--- results are
+        pointer to instance of struct __anonymous4 
+
+converting pointer to instance of struct __anonymous4 
+ to pointer to instance of struct __anonymous4 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous4 
+        from aggregate: 
+          Variable Expression: _src: instance of struct point 
+--- results are
+        lvalue instance of struct __anonymous4 
+
+converting lvalue instance of struct __anonymous4 
+ to instance of struct __anonymous4 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous4 
+        _src: instance of struct __anonymous4 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous4 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct point 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous4 
+          from aggregate: 
+            Variable Expression: _src: instance of struct point 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous4 
+        _src: instance of struct __anonymous4 
+      returning 
+        instance of struct __anonymous4 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous4 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous4 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+(types:
+    instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous4 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct point 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous4 
+      from aggregate: 
+        Variable Expression: _src: instance of struct point 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct point 
+(types:
+    lvalue instance of struct point 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+(types:
+    instance of struct point 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  v: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    v: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    v: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  v: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  v: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    z: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    z: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue instance of struct quintet 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct quintet 
+
+to:
+  instance of struct quintet 
+(types:
+    instance of struct quintet 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 6 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: tuple of types
+          signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      w: tuple of types
+        signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Tuple:
+    constant expression 2 signed int 
+
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 2 signed int 
+to:
+  pointer to instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        v: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      v: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 6 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 17 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct point 
+
Index: src/Tests/Expect-r/Initialization2.txt
===================================================================
--- src/Tests/Expect-r/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,21582 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 3 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+(types:
+    instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+(types:
+    instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+(types:
+    instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous3 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous3 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous3 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to instance of struct __anonymous3 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous3 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous3 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous3 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous3 
+formal type is instance of struct __anonymous3 
+actual type is lvalue instance of struct __anonymous3 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous3 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous3 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous3 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous3 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous4 
+--- results are
+        pointer to instance of struct __anonymous3 
+
+converting pointer to instance of struct __anonymous3 
+ to pointer to instance of struct __anonymous3 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous3 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous4 
+--- results are
+        lvalue instance of struct __anonymous3 
+
+converting lvalue instance of struct __anonymous3 
+ to instance of struct __anonymous3 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous3 
+        _src: instance of struct __anonymous3 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous3 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous3 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous4 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous3 
+        _src: instance of struct __anonymous3 
+      returning 
+        instance of struct __anonymous3 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous3 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous3 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+(types:
+    instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous3 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous3 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous4 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+(types:
+    instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+(types:
+    instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous5 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous5 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous5 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to instance of struct __anonymous5 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous5 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous5 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to instance of struct __anonymous5 
+formal type is instance of struct __anonymous5 
+actual type is lvalue instance of struct __anonymous5 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous5 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous5 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous6 
+--- results are
+        pointer to instance of struct __anonymous5 
+
+converting pointer to instance of struct __anonymous5 
+ to pointer to instance of struct __anonymous5 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous5 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous6 
+--- results are
+        lvalue instance of struct __anonymous5 
+
+converting lvalue instance of struct __anonymous5 
+ to instance of struct __anonymous5 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous5 
+        _src: instance of struct __anonymous5 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous5 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous5 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous6 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous5 
+        _src: instance of struct __anonymous5 
+      returning 
+        instance of struct __anonymous5 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous5 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous5 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
+(types:
+    instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous5 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous5 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous6 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous6 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+(types:
+    instance of struct __anonymous6 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 9 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 8 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous7 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+there are 8 alternatives before elimination
+there are 8 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous7 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+there are 8 alternatives before elimination
+there are 8 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+(types:
+    instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous8 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous8 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous7 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    lvalue instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous7 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    pointer to instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous7 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    pointer to instance of struct __anonymous7 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous7 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous7 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue instance of struct __anonymous7 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to instance of struct __anonymous7 
+formal type is instance of struct __anonymous7 
+actual type is lvalue instance of struct __anonymous7 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous7 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous7 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous8 
+--- results are
+        pointer to instance of struct __anonymous7 
+
+converting pointer to instance of struct __anonymous7 
+ to pointer to instance of struct __anonymous7 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous7 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous8 
+--- results are
+        lvalue instance of struct __anonymous7 
+
+converting lvalue instance of struct __anonymous7 
+ to instance of struct __anonymous7 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous7 
+        _src: instance of struct __anonymous7 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous7 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous7 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous8 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous7 
+        _src: instance of struct __anonymous7 
+      returning 
+        instance of struct __anonymous7 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous7 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous7 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous8 
+
+(types:
+    instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous7 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous7 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous8 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue instance of struct __anonymous8 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+(types:
+    instance of struct __anonymous8 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 9 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 8 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous9 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous9 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+(types:
+    instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous10 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+there are 11 alternatives before elimination
+there are 11 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous10 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+there are 11 alternatives before elimination
+there are 11 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous9 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    lvalue instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous9 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    pointer to instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous9 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    pointer to instance of struct __anonymous9 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous9 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous9 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue instance of struct __anonymous9 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to instance of struct __anonymous9 
+formal type is instance of struct __anonymous9 
+actual type is lvalue instance of struct __anonymous9 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous9 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous9 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous10 
+--- results are
+        pointer to instance of struct __anonymous9 
+
+converting pointer to instance of struct __anonymous9 
+ to pointer to instance of struct __anonymous9 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous9 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous10 
+--- results are
+        lvalue instance of struct __anonymous9 
+
+converting lvalue instance of struct __anonymous9 
+ to instance of struct __anonymous9 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous9 
+        _src: instance of struct __anonymous9 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous9 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous9 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous10 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous9 
+        _src: instance of struct __anonymous9 
+      returning 
+        instance of struct __anonymous9 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous9 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous9 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous10 
+
+(types:
+    instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous9 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous9 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous10 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue instance of struct __anonymous10 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+(types:
+    instance of struct __anonymous10 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct t 
+    _src: instance of struct t 
+  returning 
+    instance of struct t 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct t 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct t 
+          _src: instance of struct t 
+        returning 
+          instance of struct t 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct t 
+              _src: instance of struct t 
+            returning 
+              instance of struct t 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct t 
+                  _src: instance of struct t 
+                returning 
+                  instance of struct t 
+
+)
+        Environment: 
+formal type is pointer to instance of struct t 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct t 
+    _src: instance of struct t 
+  returning 
+    instance of struct t 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct t 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct t 
+          _src: instance of struct t 
+        returning 
+          instance of struct t 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct t 
+              _src: instance of struct t 
+            returning 
+              instance of struct t 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct t 
+                  _src: instance of struct t 
+                returning 
+                  instance of struct t 
+
+)
+        Environment: 
+formal type is pointer to instance of struct t 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct t 
+(types:
+    lvalue instance of struct t 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct t 
+
+to:
+  instance of struct t 
+(types:
+    instance of struct t 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous11 
+    _src: instance of struct __anonymous11 
+  returning 
+    instance of struct __anonymous11 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous11 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous11 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous11 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct t 
+    _src: instance of struct t 
+  returning 
+    instance of struct t 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct t 
+
+to:
+  instance of struct t 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous11 
+          _src: instance of struct __anonymous11 
+        returning 
+          instance of struct __anonymous11 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct t 
+          _src: instance of struct t 
+        returning 
+          instance of struct t 
+
+)
+Environment: 
+
+there are 13 alternatives before elimination
+there are 13 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct t 
+              _src: instance of struct t 
+            returning 
+              instance of struct t 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct t 
+                  _src: instance of struct t 
+                returning 
+                  instance of struct t 
+
+)
+        Environment: 
+formal type is pointer to instance of struct t 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous11 
+              _src: instance of struct __anonymous11 
+            returning 
+              instance of struct __anonymous11 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous11 
+                  _src: instance of struct __anonymous11 
+                returning 
+                  instance of struct __anonymous11 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous11 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous11 
+    _src: instance of struct __anonymous11 
+  returning 
+    instance of struct __anonymous11 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous11 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous11 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous11 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct t 
+    _src: instance of struct t 
+  returning 
+    instance of struct t 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct t 
+
+to:
+  instance of struct t 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous11 
+          _src: instance of struct __anonymous11 
+        returning 
+          instance of struct __anonymous11 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct t 
+          _src: instance of struct t 
+        returning 
+          instance of struct t 
+
+)
+Environment: 
+
+there are 13 alternatives before elimination
+there are 13 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct t 
+              _src: instance of struct t 
+            returning 
+              instance of struct t 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct t 
+                  _src: instance of struct t 
+                returning 
+                  instance of struct t 
+
+)
+        Environment: 
+formal type is pointer to instance of struct t 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous11 
+              _src: instance of struct __anonymous11 
+            returning 
+              instance of struct __anonymous11 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous11 
+                  _src: instance of struct __anonymous11 
+                returning 
+                  instance of struct __anonymous11 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous11 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue instance of struct __anonymous11 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous11 
+
+to:
+  instance of struct __anonymous11 
+(types:
+    instance of struct __anonymous11 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 6 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 9 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 8 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous8 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 9 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 8 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous10 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct t 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 6 signed int 
+to:
+  instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous11 
+
Index: src/Tests/Expect-r/LabelledExit.txt
===================================================================
--- src/Tests/Expect-r/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error: 'continue' target label must be an enclosing loop: 
Index: src/Tests/Expect-r/Members.txt
===================================================================
--- src/Tests/Expect-r/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9113 @@
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct a_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            a: signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct a_struct 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct a_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              a: signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                  Member Expression, with field: 
+            a: signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct a_struct 
+
+      Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct a_struct 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          a: signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct a_struct 
+
+          Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct a_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: char 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: char 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to char 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to char 
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to char 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            a: char 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct a_struct 
+--- results are
+        pointer to char 
+
+converting pointer to char 
+ to pointer to char 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: char 
+        from aggregate: 
+          Variable Expression: _src: instance of struct a_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to char 
+        char 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              a: char 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                  Member Expression, with field: 
+            a: char 
+          from aggregate: 
+            Variable Expression: _src: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to char 
+        char 
+      returning 
+        char 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        a: char 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct a_struct 
+
+      Member Expression, with field: 
+      a: char 
+    from aggregate: 
+      Variable Expression: _src: instance of struct a_struct 
+
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          a: char 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct a_struct 
+
+          Member Expression, with field: 
+        a: char 
+      from aggregate: 
+        Variable Expression: _src: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct a_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: float 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: float 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to float 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to float 
+formal type is float 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to float 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            a: float 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct a_struct 
+--- results are
+        pointer to float 
+
+converting pointer to float 
+ to pointer to float 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: float 
+        from aggregate: 
+          Variable Expression: _src: instance of struct a_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to float 
+        float 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              a: float 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                  Member Expression, with field: 
+            a: float 
+          from aggregate: 
+            Variable Expression: _src: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to float 
+        float 
+      returning 
+        float 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        a: float 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct a_struct 
+
+      Member Expression, with field: 
+      a: float 
+    from aggregate: 
+      Variable Expression: _src: instance of struct a_struct 
+
+(types:
+    float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          a: float 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct a_struct 
+
+          Member Expression, with field: 
+        a: float 
+      from aggregate: 
+        Variable Expression: _src: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+(types:
+    instance of struct a_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is __builtin_memcpy
+decl is __builtin_memcpy: function
+    accepting unspecified arguments
+  returning 
+    pointer to char 
+
+newExpr is Variable Expression: __builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: __builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          pointer to char 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union b_struct 
+(types:
+    lvalue pointer to instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union b_struct 
+(types:
+    lvalue pointer to instance of union b_struct 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _src: instance of union b_struct 
+(types:
+    pointer to instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _src: instance of union b_struct 
+(types:
+    pointer to instance of union b_struct 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union b_struct 
+(types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union b_struct 
+(types:
+    unsigned int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: __builtin_memcpy: function
+              accepting unspecified arguments
+            returning 
+              pointer to char 
+
+(types:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+)
+        Environment: 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: _dst: pointer to instance of union b_struct 
+--- results are
+        lvalue pointer to instance of union b_struct 
+actual expression:
+        Address of:
+          Variable Expression: _src: instance of union b_struct 
+--- results are
+        pointer to instance of union b_struct 
+actual expression:
+        Sizeof Expression on: instance of union b_struct 
+--- results are
+        unsigned int 
+Case +++++++++++++
+formals are:
+actuals are:
+                  Variable Expression: _dst: pointer to instance of union b_struct 
+
+                  Address of:
+            Variable Expression: _src: instance of union b_struct 
+
+                  Sizeof Expression on: instance of union b_struct 
+
+bindings are:
+cost of conversion is:( 3, 0, 0 )
+alternatives before prune:
+Cost ( 3, 0, 0 ): Application of
+  Variable Expression: __builtin_memcpy: function
+        accepting unspecified arguments
+      returning 
+        pointer to char 
+
+to arguments
+      Variable Expression: _dst: pointer to instance of union b_struct 
+
+      Address of:
+      Variable Expression: _src: instance of union b_struct 
+
+      Sizeof Expression on: instance of union b_struct 
+
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: __builtin_memcpy: function
+          accepting unspecified arguments
+        returning 
+          pointer to char 
+
+  to arguments
+          Variable Expression: _dst: pointer to instance of union b_struct 
+
+          Address of:
+        Variable Expression: _src: instance of union b_struct 
+
+          Sizeof Expression on: instance of union b_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+(types:
+    instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: function
+  with parameters
+    char 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          char 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_struct
+decl is the_struct: instance of struct a_struct 
+newExpr is Variable Expression: the_struct: instance of struct a_struct 
+
+decl is the_struct: instance of union b_struct 
+newExpr is Variable Expression: the_struct: instance of union b_struct 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: a: function
+            with parameters
+              char 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  char 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is char 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue pointer to signed int 
+formal type is char 
+actual type is lvalue pointer to float 
+formal type is char 
+actual type is lvalue pointer to char 
+actual expression:
+        Member Expression, with field: 
+          a: signed int 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              a: signed int 
+            from aggregate: 
+              Variable Expression: the_struct: instance of struct a_struct 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: float 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              a: float 
+            from aggregate: 
+              Variable Expression: the_struct: instance of struct a_struct 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: char 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Member Expression, with field: 
+            a: char 
+          from aggregate: 
+            Variable Expression: the_struct: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: a: function
+      with parameters
+        char 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+    to:
+      char 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: a: function
+      with parameters
+        char 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Member Expression, with field: 
+        a: float 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+    to:
+      char 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: a: function
+      with parameters
+        char 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      a: char 
+    from aggregate: 
+      Variable Expression: the_struct: instance of struct a_struct 
+
+(types:
+)
+Environment: 
+
+marking ambiguous
+cost ( 0, 0, 0 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: a: function
+        with parameters
+          char 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        a: char 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_struct
+decl is the_struct: instance of struct a_struct 
+newExpr is Variable Expression: the_struct: instance of struct a_struct 
+
+decl is the_struct: instance of union b_struct 
+newExpr is Variable Expression: the_struct: instance of union b_struct 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: b: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue pointer to signed int 
+formal type is signed int 
+actual type is lvalue pointer to float 
+formal type is signed int 
+actual type is lvalue pointer to char 
+actual expression:
+        Member Expression, with field: 
+          a: signed int 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Member Expression, with field: 
+            a: signed int 
+          from aggregate: 
+            Variable Expression: the_struct: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: float 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              a: float 
+            from aggregate: 
+              Variable Expression: the_struct: instance of struct a_struct 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: char 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              a: char 
+            from aggregate: 
+              Variable Expression: the_struct: instance of struct a_struct 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: b: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: the_struct: instance of struct a_struct 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: b: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Member Expression, with field: 
+        a: float 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: b: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Member Expression, with field: 
+        a: char 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: b: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is c
+decl is c: function
+  with parameters
+    pointer to signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_struct
+decl is the_struct: instance of struct a_struct 
+newExpr is Variable Expression: the_struct: instance of struct a_struct 
+
+decl is the_struct: instance of union b_struct 
+newExpr is Variable Expression: the_struct: instance of union b_struct 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: c: function
+            with parameters
+              pointer to signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is lvalue signed int 
+formal type is pointer to signed int 
+actual type is lvalue float 
+formal type is pointer to signed int 
+actual type is lvalue char 
+formal type is pointer to signed int 
+actual type is lvalue pointer to signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is pointer to signed int 
+actual type is lvalue pointer to float 
+formal type is pointer to signed int 
+actual type is lvalue pointer to char 
+actual expression:
+        Member Expression, with field: 
+          a: pointer to signed int 
+        from aggregate: 
+          Variable Expression: the_struct: instance of union b_struct 
+--- results are
+        lvalue pointer to signed int 
+
+converting lvalue pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+actuals are:
+                  Member Expression, with field: 
+            a: pointer to signed int 
+          from aggregate: 
+            Variable Expression: the_struct: instance of union b_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: c: function
+      with parameters
+        pointer to signed int 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      a: pointer to signed int 
+    from aggregate: 
+      Variable Expression: the_struct: instance of union b_struct 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: c: function
+        with parameters
+          pointer to signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        a: pointer to signed int 
+      from aggregate: 
+        Variable Expression: the_struct: instance of union b_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is d
+decl is d: function
+  with parameters
+    pointer to float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_struct
+decl is the_struct: instance of struct a_struct 
+newExpr is Variable Expression: the_struct: instance of struct a_struct 
+
+decl is the_struct: instance of union b_struct 
+newExpr is Variable Expression: the_struct: instance of union b_struct 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: d: function
+            with parameters
+              pointer to float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is lvalue signed int 
+formal type is pointer to float 
+actual type is lvalue float 
+formal type is pointer to float 
+actual type is lvalue char 
+formal type is pointer to float 
+actual type is lvalue pointer to signed int 
+formal type is pointer to float 
+actual type is lvalue pointer to float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is pointer to float 
+actual type is lvalue pointer to char 
+actual expression:
+        Member Expression, with field: 
+          a: pointer to float 
+        from aggregate: 
+          Variable Expression: the_struct: instance of union b_struct 
+--- results are
+        lvalue pointer to float 
+
+converting lvalue pointer to float 
+ to pointer to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to float 
+actuals are:
+                  Member Expression, with field: 
+            a: pointer to float 
+          from aggregate: 
+            Variable Expression: the_struct: instance of union b_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: d: function
+      with parameters
+        pointer to float 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      a: pointer to float 
+    from aggregate: 
+      Variable Expression: the_struct: instance of union b_struct 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: d: function
+        with parameters
+          pointer to float 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        a: pointer to float 
+      from aggregate: 
+        Variable Expression: the_struct: instance of union b_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct c_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct c_struct 
+          _src: instance of struct c_struct 
+        returning 
+          instance of struct c_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union b_struct 
+          _src: instance of union b_struct 
+        returning 
+          instance of union b_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union b_struct 
+              _src: instance of union b_struct 
+            returning 
+              instance of union b_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union b_struct 
+                  _src: instance of union b_struct 
+                returning 
+                  instance of union b_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union b_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct c_struct 
+              _src: instance of struct c_struct 
+            returning 
+              instance of struct c_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct c_struct 
+                  _src: instance of struct c_struct 
+                returning 
+                  instance of struct c_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct c_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct c_struct 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct c_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                  Member Expression, with field: 
+            signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct c_struct 
+
+      Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct c_struct 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct c_struct 
+
+          Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct c_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct c_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct c_struct 
+          _src: instance of struct c_struct 
+        returning 
+          instance of struct c_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union b_struct 
+          _src: instance of union b_struct 
+        returning 
+          instance of union b_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    char 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    char 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to char 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to char 
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union b_struct 
+              _src: instance of union b_struct 
+            returning 
+              instance of union b_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union b_struct 
+                  _src: instance of union b_struct 
+                returning 
+                  instance of union b_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union b_struct 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct c_struct 
+              _src: instance of struct c_struct 
+            returning 
+              instance of struct c_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct c_struct 
+                  _src: instance of struct c_struct 
+                returning 
+                  instance of struct c_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct c_struct 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to char 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            char 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct c_struct 
+--- results are
+        pointer to char 
+
+converting pointer to char 
+ to pointer to char 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          char 
+        from aggregate: 
+          Variable Expression: _src: instance of struct c_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to char 
+        char 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              char 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                  Member Expression, with field: 
+            char 
+          from aggregate: 
+            Variable Expression: _src: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to char 
+        char 
+      returning 
+        char 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        char 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct c_struct 
+
+      Member Expression, with field: 
+      char 
+    from aggregate: 
+      Variable Expression: _src: instance of struct c_struct 
+
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          char 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct c_struct 
+
+          Member Expression, with field: 
+        char 
+      from aggregate: 
+        Variable Expression: _src: instance of struct c_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct c_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct c_struct 
+          _src: instance of struct c_struct 
+        returning 
+          instance of struct c_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union b_struct 
+          _src: instance of union b_struct 
+        returning 
+          instance of union b_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    float 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    float 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to float 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to float 
+formal type is float 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union b_struct 
+              _src: instance of union b_struct 
+            returning 
+              instance of union b_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union b_struct 
+                  _src: instance of union b_struct 
+                returning 
+                  instance of union b_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union b_struct 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct c_struct 
+              _src: instance of struct c_struct 
+            returning 
+              instance of struct c_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct c_struct 
+                  _src: instance of struct c_struct 
+                returning 
+                  instance of struct c_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct c_struct 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to float 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            float 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct c_struct 
+--- results are
+        pointer to float 
+
+converting pointer to float 
+ to pointer to float 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          float 
+        from aggregate: 
+          Variable Expression: _src: instance of struct c_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to float 
+        float 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              float 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                  Member Expression, with field: 
+            float 
+          from aggregate: 
+            Variable Expression: _src: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to float 
+        float 
+      returning 
+        float 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        float 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct c_struct 
+
+      Member Expression, with field: 
+      float 
+    from aggregate: 
+      Variable Expression: _src: instance of struct c_struct 
+
+(types:
+    float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          float 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct c_struct 
+
+          Member Expression, with field: 
+        float 
+      from aggregate: 
+        Variable Expression: _src: instance of struct c_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct c_struct 
+
+to:
+  instance of struct c_struct 
+(types:
+    instance of struct c_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is __builtin_memcpy
+decl is __builtin_memcpy: function
+    accepting unspecified arguments
+  returning 
+    pointer to char 
+
+newExpr is Variable Expression: __builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: __builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          pointer to char 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union d_struct 
+(types:
+    lvalue pointer to instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union d_struct 
+(types:
+    lvalue pointer to instance of union d_struct 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _src: instance of union d_struct 
+(types:
+    pointer to instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _src: instance of union d_struct 
+(types:
+    pointer to instance of union d_struct 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union d_struct 
+(types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union d_struct 
+(types:
+    unsigned int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: __builtin_memcpy: function
+              accepting unspecified arguments
+            returning 
+              pointer to char 
+
+(types:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+)
+        Environment: 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: _dst: pointer to instance of union d_struct 
+--- results are
+        lvalue pointer to instance of union d_struct 
+actual expression:
+        Address of:
+          Variable Expression: _src: instance of union d_struct 
+--- results are
+        pointer to instance of union d_struct 
+actual expression:
+        Sizeof Expression on: instance of union d_struct 
+--- results are
+        unsigned int 
+Case +++++++++++++
+formals are:
+actuals are:
+                  Variable Expression: _dst: pointer to instance of union d_struct 
+
+                  Address of:
+            Variable Expression: _src: instance of union d_struct 
+
+                  Sizeof Expression on: instance of union d_struct 
+
+bindings are:
+cost of conversion is:( 3, 0, 0 )
+alternatives before prune:
+Cost ( 3, 0, 0 ): Application of
+  Variable Expression: __builtin_memcpy: function
+        accepting unspecified arguments
+      returning 
+        pointer to char 
+
+to arguments
+      Variable Expression: _dst: pointer to instance of union d_struct 
+
+      Address of:
+      Variable Expression: _src: instance of union d_struct 
+
+      Sizeof Expression on: instance of union d_struct 
+
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: __builtin_memcpy: function
+          accepting unspecified arguments
+        returning 
+          pointer to char 
+
+  to arguments
+          Variable Expression: _dst: pointer to instance of union d_struct 
+
+          Address of:
+        Variable Expression: _src: instance of union d_struct 
+
+          Sizeof Expression on: instance of union d_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of union d_struct 
+
+to:
+  instance of union d_struct 
+(types:
+    instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: function
+  with parameters
+    char 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          char 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: instance of struct c_struct 
+newExpr is Variable Expression: x: instance of struct c_struct 
+
+decl is x: instance of union d_struct 
+newExpr is Variable Expression: x: instance of union d_struct 
+
+decl is x: short unsigned int 
+newExpr is Variable Expression: x: short unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: a: function
+            with parameters
+              char 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  char 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is char 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue short unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue pointer to signed int 
+formal type is char 
+actual type is lvalue pointer to float 
+formal type is char 
+actual type is lvalue pointer to char 
+formal type is char 
+actual type is lvalue instance of union d_struct 
+formal type is char 
+actual type is lvalue instance of struct c_struct 
+actual expression:
+        Member Expression, with field: 
+          signed int 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              signed int 
+            from aggregate: 
+              Variable Expression: x: instance of struct c_struct 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          float 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              float 
+            from aggregate: 
+              Variable Expression: x: instance of struct c_struct 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          char 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Member Expression, with field: 
+            char 
+          from aggregate: 
+            Variable Expression: x: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: x: short unsigned int 
+--- results are
+        lvalue short unsigned int 
+
+converting lvalue short unsigned int 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Variable Expression: x: short unsigned int 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: a: function
+      with parameters
+        char 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: x: short unsigned int 
+
+    to:
+      char 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: a: function
+        with parameters
+          char 
+        returning 
+          nothing 
+
+  to arguments
+          Cast of:
+        Variable Expression: x: short unsigned int 
+
+      to:
+        char 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: instance of struct c_struct 
+newExpr is Variable Expression: x: instance of struct c_struct 
+
+decl is x: instance of union d_struct 
+newExpr is Variable Expression: x: instance of union d_struct 
+
+decl is x: short unsigned int 
+newExpr is Variable Expression: x: short unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: b: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue short unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue pointer to signed int 
+formal type is signed int 
+actual type is lvalue pointer to float 
+formal type is signed int 
+actual type is lvalue pointer to char 
+formal type is signed int 
+actual type is lvalue instance of union d_struct 
+formal type is signed int 
+actual type is lvalue instance of struct c_struct 
+actual expression:
+        Member Expression, with field: 
+          signed int 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Member Expression, with field: 
+            signed int 
+          from aggregate: 
+            Variable Expression: x: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          float 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              float 
+            from aggregate: 
+              Variable Expression: x: instance of struct c_struct 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          char 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              char 
+            from aggregate: 
+              Variable Expression: x: instance of struct c_struct 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+actual expression:
+        Variable Expression: x: short unsigned int 
+--- results are
+        lvalue short unsigned int 
+
+converting lvalue short unsigned int 
+ to signed int 
+cost is( 0, 0, 1 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: x: short unsigned int 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 1 )
+alternatives before prune:
+Cost ( 0, 0, 1 ): Application of
+  Variable Expression: b: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: x: short unsigned int 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: b: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Cast of:
+        Variable Expression: x: short unsigned int 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is c
+decl is c: function
+  with parameters
+    pointer to signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: instance of struct c_struct 
+newExpr is Variable Expression: x: instance of struct c_struct 
+
+decl is x: instance of union d_struct 
+newExpr is Variable Expression: x: instance of union d_struct 
+
+decl is x: short unsigned int 
+newExpr is Variable Expression: x: short unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: c: function
+            with parameters
+              pointer to signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is lvalue signed int 
+formal type is pointer to signed int 
+actual type is lvalue float 
+formal type is pointer to signed int 
+actual type is lvalue char 
+formal type is pointer to signed int 
+actual type is lvalue short unsigned int 
+formal type is pointer to signed int 
+actual type is lvalue pointer to signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is pointer to signed int 
+actual type is lvalue pointer to float 
+formal type is pointer to signed int 
+actual type is lvalue pointer to char 
+formal type is pointer to signed int 
+actual type is lvalue instance of union d_struct 
+formal type is pointer to signed int 
+actual type is lvalue instance of struct c_struct 
+actual expression:
+        Member Expression, with field: 
+          pointer to signed int 
+        from aggregate: 
+          Variable Expression: x: instance of union d_struct 
+--- results are
+        lvalue pointer to signed int 
+
+converting lvalue pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+actuals are:
+                  Member Expression, with field: 
+            pointer to signed int 
+          from aggregate: 
+            Variable Expression: x: instance of union d_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: c: function
+      with parameters
+        pointer to signed int 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: x: instance of union d_struct 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: c: function
+        with parameters
+          pointer to signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Variable Expression: x: instance of union d_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is d
+decl is d: function
+  with parameters
+    pointer to float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: instance of struct c_struct 
+newExpr is Variable Expression: x: instance of struct c_struct 
+
+decl is x: instance of union d_struct 
+newExpr is Variable Expression: x: instance of union d_struct 
+
+decl is x: short unsigned int 
+newExpr is Variable Expression: x: short unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: d: function
+            with parameters
+              pointer to float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is lvalue signed int 
+formal type is pointer to float 
+actual type is lvalue float 
+formal type is pointer to float 
+actual type is lvalue char 
+formal type is pointer to float 
+actual type is lvalue short unsigned int 
+formal type is pointer to float 
+actual type is lvalue pointer to signed int 
+formal type is pointer to float 
+actual type is lvalue pointer to float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is pointer to float 
+actual type is lvalue pointer to char 
+formal type is pointer to float 
+actual type is lvalue instance of union d_struct 
+formal type is pointer to float 
+actual type is lvalue instance of struct c_struct 
+actual expression:
+        Member Expression, with field: 
+          pointer to float 
+        from aggregate: 
+          Variable Expression: x: instance of union d_struct 
+--- results are
+        lvalue pointer to float 
+
+converting lvalue pointer to float 
+ to pointer to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to float 
+actuals are:
+                  Member Expression, with field: 
+            pointer to float 
+          from aggregate: 
+            Variable Expression: x: instance of union d_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: d: function
+      with parameters
+        pointer to float 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      pointer to float 
+    from aggregate: 
+      Variable Expression: x: instance of union d_struct 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: d: function
+        with parameters
+          pointer to float 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        pointer to float 
+      from aggregate: 
+        Variable Expression: x: instance of union d_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct forward 
+    _src: instance of struct forward 
+  returning 
+    instance of struct forward 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct forward 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct forward 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct forward 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct c_struct 
+
+to:
+  instance of struct c_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union d_struct 
+    _src: instance of union d_struct 
+  returning 
+    instance of union d_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union d_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union d_struct 
+
+                          Sizeof Expression on: instance of union d_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union d_struct 
+
+to:
+  instance of union d_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union d_struct 
+      _src: instance of union d_struct 
+    returning 
+      instance of union d_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct forward 
+          _src: instance of struct forward 
+        returning 
+          instance of struct forward 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct c_struct 
+          _src: instance of struct c_struct 
+        returning 
+          instance of struct c_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union b_struct 
+          _src: instance of union b_struct 
+        returning 
+          instance of union b_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union d_struct 
+      _src: instance of union d_struct 
+    returning 
+      instance of union d_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union d_struct 
+          _src: instance of union d_struct 
+        returning 
+          instance of union d_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct forward 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct forward 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct forward 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct forward 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct forward 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union d_struct 
+              _src: instance of union d_struct 
+            returning 
+              instance of union d_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union d_struct 
+                  _src: instance of union d_struct 
+                returning 
+                  instance of union d_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union d_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union b_struct 
+              _src: instance of union b_struct 
+            returning 
+              instance of union b_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union b_struct 
+                  _src: instance of union b_struct 
+                returning 
+                  instance of union b_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union b_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct c_struct 
+              _src: instance of struct c_struct 
+            returning 
+              instance of struct c_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct c_struct 
+                  _src: instance of struct c_struct 
+                returning 
+                  instance of struct c_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct c_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct forward 
+              _src: instance of struct forward 
+            returning 
+              instance of struct forward 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct forward 
+                  _src: instance of struct forward 
+                returning 
+                  instance of struct forward 
+
+)
+        Environment: 
+formal type is pointer to instance of struct forward 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct forward 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct forward 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct forward 
+
+                  Member Expression, with field: 
+            y: signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct forward 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct forward 
+
+      Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct forward 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct forward 
+
+          Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct forward 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct forward 
+(types:
+    lvalue instance of struct forward 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct forward 
+
+to:
+  instance of struct forward 
+(types:
+    instance of struct forward 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is *?
+decl is *?: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    pointer to instance of type T (not function type) 
+  returning 
+    lvalue instance of type T (not function type) 
+
+newExpr is Variable Expression: *?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: *?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type _0_T (not function type) 
+        returning 
+          lvalue instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is q
+decl is q: pointer to instance of struct forward 
+newExpr is Variable Expression: q: pointer to instance of struct forward 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: pointer to instance of struct forward 
+(types:
+    lvalue pointer to instance of struct forward 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: pointer to instance of struct forward 
+(types:
+    lvalue pointer to instance of struct forward 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: *?: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              pointer to instance of type T (not function type) 
+            returning 
+              lvalue instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  pointer to instance of type _0_T (not function type) 
+                returning 
+                  lvalue instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type _0_T (not function type) 
+actual type is lvalue pointer to instance of struct forward 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to forall
+    _1_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _1_DT (not function type) 
+    pointer to instance of type _1_DT (not function type) 
+  returning 
+    pointer to instance of type _1_DT (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct forward 
+    _src: instance of struct forward 
+  returning 
+    instance of struct forward 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct forward 
+
+                          Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct forward 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct forward 
+
+to:
+  instance of struct forward 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of struct forward 
+    _src: instance of struct forward 
+  returning 
+    instance of struct forward 
+
+success!
+satisfying assertion 25 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 79 ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct forward 
+    _src: instance of struct forward 
+  returning 
+    instance of struct forward 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct forward 
+
+                          Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct forward 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct forward 
+
+to:
+  instance of struct forward 
+with environment:
+  Types:
+  Non-types:
+
+
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct c_struct 
+
+to:
+  instance of struct c_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union d_struct 
+    _src: instance of union d_struct 
+  returning 
+    instance of union d_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union d_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union d_struct 
+
+                          Sizeof Expression on: instance of union d_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union d_struct 
+
+to:
+  instance of union d_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of union d_struct 
+    _src: instance of union d_struct 
+  returning 
+    instance of union d_struct 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: q: pointer to instance of struct forward 
+--- results are
+        lvalue pointer to instance of struct forward 
+
+converting lvalue pointer to instance of struct forward 
+ to pointer to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            _dst: pointer to instance of struct forward 
+            _src: instance of struct forward 
+          returning 
+            instance of struct forward 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: q: pointer to instance of struct forward 
+
+bindings are:
+        ( _0_T ) -> instance of struct forward  (no widening)
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: *?: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        pointer to instance of type T (not function type) 
+      returning 
+        lvalue instance of type T (not function type) 
+
+to arguments
+      Variable Expression: q: pointer to instance of struct forward 
+
+with inferred parameters:
+  ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+(types:
+    lvalue instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> instance of struct forward  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 4, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Application of
+    Variable Expression: *?: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type T (not function type) 
+        returning 
+          lvalue instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: q: pointer to instance of struct forward 
+
+  with inferred parameters:
+    ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct forward 
+        _src: instance of struct forward 
+      returning 
+        instance of struct forward 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Application of
+      Variable Expression: *?: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            pointer to instance of type T (not function type) 
+          returning 
+            lvalue instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: q: pointer to instance of struct forward 
+
+    with inferred parameters:
+      ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct forward 
+          _src: instance of struct forward 
+        returning 
+          instance of struct forward 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: unbound type variable in application Application of
+  Variable Expression: *?: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        pointer to instance of type T (not function type) 
+      returning 
+        pointer to instance of type T (not function type) 
+
+to arguments
+      Variable Expression: q: pointer to instance of struct forward 
+
+with inferred parameters:
+  ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+
Index: src/Tests/Expect-r/Misc.txt
===================================================================
--- src/Tests/Expect-r/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1510 @@
+nameExpr is g
+decl is g: function
+  with parameters
+    unsigned int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              unsigned int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is unsigned int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is unsigned int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: float 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to unsigned int 
+cost is( 0, 0, 1 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: signed int 
+
+          to:
+            unsigned int 
+
+bindings are:
+cost of conversion is:( 0, 0, 1 )
+actual expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to unsigned int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: float 
+
+          to:
+            unsigned int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Comma Expression:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: b: float 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: b: signed int 
+
+    to:
+      unsigned int 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: b: float 
+
+    to:
+      unsigned int 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: b: signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    unsigned int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Comma Expression:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Comma Expression:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              unsigned int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is unsigned int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is unsigned int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Comma Expression:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Comma Expression:
+            Comma Expression:
+              Variable Expression: a: signed int 
+
+              Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Comma Expression:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: a: signed int 
+
+          Variable Expression: b: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Comma Expression:
+                Variable Expression: a: signed int 
+
+                Variable Expression: a: signed int 
+
+              Variable Expression: b: float 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Comma Expression:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to unsigned int 
+cost is( 0, 0, 1 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Comma Expression:
+                Variable Expression: a: signed int 
+
+                Variable Expression: a: signed int 
+
+              Variable Expression: b: signed int 
+
+          to:
+            unsigned int 
+
+bindings are:
+cost of conversion is:( 0, 0, 1 )
+actual expression:
+        Comma Expression:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: a: signed int 
+
+          Variable Expression: b: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to unsigned int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Comma Expression:
+                Variable Expression: a: signed int 
+
+                Variable Expression: a: signed int 
+
+              Variable Expression: b: float 
+
+          to:
+            unsigned int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Comma Expression:
+      Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: a: signed int 
+
+        Variable Expression: b: float 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: a: signed int 
+
+        Variable Expression: b: signed int 
+
+    to:
+      unsigned int 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: a: signed int 
+
+        Variable Expression: b: float 
+
+    to:
+      unsigned int 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Comma Expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: a: signed int 
+
+        Variable Expression: b: signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    unsigned int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Sizeof Expression on:   Variable Expression: a: signed int 
+
+(types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Sizeof Expression on:   Variable Expression: a: signed int 
+
+(types:
+    unsigned int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              unsigned int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is unsigned int 
+actual type is unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Sizeof Expression on:           Variable Expression: a: signed int 
+
+--- results are
+        unsigned int 
+
+converting unsigned int 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Sizeof Expression on:               Variable Expression: a: signed int 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Sizeof Expression on:           Variable Expression: a: signed int 
+
+--- results are
+        unsigned int 
+
+converting unsigned int 
+ to unsigned int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Sizeof Expression on:             Variable Expression: a: signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Sizeof Expression on:         Variable Expression: a: signed int 
+
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Sizeof Expression on:       Variable Expression: a: signed int 
+
+
+(types:
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+  to arguments
+          Sizeof Expression on:         Variable Expression: a: signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    unsigned int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Sizeof Expression on: signed int 
+(types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Sizeof Expression on: signed int 
+(types:
+    unsigned int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              unsigned int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is unsigned int 
+actual type is unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Sizeof Expression on: signed int 
+--- results are
+        unsigned int 
+
+converting unsigned int 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Sizeof Expression on: signed int 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Sizeof Expression on: signed int 
+--- results are
+        unsigned int 
+
+converting unsigned int 
+ to unsigned int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Sizeof Expression on: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Sizeof Expression on: signed int 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Sizeof Expression on: signed int 
+
+(types:
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+  to arguments
+          Sizeof Expression on: signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __a__i;
+int __b__i;
+float __b__f;
+void __g__F_i_(int );
+void __g__F_Ui_(unsigned int );
+void __f__F__(void){
+    __g__F_i_((__a__i , __b__i));
+    __g__F_i_(((__a__i , __a__i) , __b__i));
+    __g__F_Ui_(sizeof(__a__i));
+    __g__F_Ui_(sizeof(int ));
+}
Index: src/Tests/Expect-r/MiscError.txt
===================================================================
--- src/Tests/Expect-r/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,385 @@
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: float 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+marking ambiguous
+there are 1 alternatives before elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: float 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+marking ambiguous
+there are 1 alternatives before elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: b: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Cast of:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: b: float 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+marking ambiguous
+there are 1 alternatives before elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Comma Expression:
+    Name: a
+
+    Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Ambiguous expression in sizeof operand: Name: b
+
Index: src/Tests/Expect-r/NamedParmArg.txt
===================================================================
--- src/Tests/Expect-r/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1095 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 3 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 3 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f1: function
+            with parameters
+              i: signed int with initializer 
+                Simple Initializer:                   Cast of:
+constant expression 3 signed int 
+                  to:
+                    signed int 
+                  with environment:
+                    Types:
+                    Non-types:
+
+              j: pointer to signed int with initializer 
+                Simple Initializer:                   Name: 0
+
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  i: signed int with initializer 
+                    Simple Initializer:                       Cast of:
+constant expression 3 signed int 
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+
+                  j: pointer to signed int with initializer 
+                    Simple Initializer:                       Name: 0
+
+                returning 
+                  signed int 
+
+)
+        Environment: 
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f1: function
+            with parameters
+              i: signed int with initializer 
+                Simple Initializer:                   Cast of:
+constant expression 3 signed int 
+                  to:
+                    signed int 
+                  with environment:
+                    Types:
+                    Non-types:
+
+              j: pointer to signed int with initializer 
+                Simple Initializer:                   Name: 0
+
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  i: signed int with initializer 
+                    Simple Initializer:                       Cast of:
+constant expression 3 signed int 
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+
+                  j: pointer to signed int with initializer 
+                    Simple Initializer:                       Name: 0
+
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f1: function
+            with parameters
+              i: signed int with initializer 
+                Simple Initializer:                   Cast of:
+constant expression 3 signed int 
+                  to:
+                    signed int 
+                  with environment:
+                    Types:
+                    Non-types:
+
+              j: pointer to signed int with initializer 
+                Simple Initializer:                   Name: 0
+
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  i: signed int with initializer 
+                    Simple Initializer:                       Cast of:
+constant expression 3 signed int 
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+
+                  j: pointer to signed int with initializer 
+                    Simple Initializer:                       Name: 0
+
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int with designator:  Name: i
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int with designator:  Name: i
+(types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f2
+decl is f2: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int 
+  returning 
+    signed int 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f2: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f2: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f2: function
+            with parameters
+              i: signed int with initializer 
+                Simple Initializer:                   Cast of:
+constant expression 3 signed int 
+                  to:
+                    signed int 
+                  with environment:
+                    Types:
+                    Non-types:
+
+              j: pointer to signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  i: signed int with initializer 
+                    Simple Initializer:                       Cast of:
+constant expression 3 signed int 
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+
+                  j: pointer to signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f2
+...to: 
+with designator:  Tuple:
+          Name: j
+
+          Name: i
+
+
Index: src/Tests/Expect-r/NumericConstants.txt
===================================================================
--- src/Tests/Expect-r/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,744 @@
+nameExpr is 1
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 21 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 21 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2147483647 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 2147483647 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 37LL long long signed int (types:
+    long long signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 37LL long long signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 45ull long long unsigned int (types:
+    long long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 45ull long long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 89llu long long unsigned int (types:
+    long long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 89llu long long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 99LLu long long unsigned int (types:
+    long long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 99LLu long long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 56lu long unsigned int (types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 56lu long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 88LLu long long unsigned int (types:
+    long long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 88LLu long long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0u unsigned int (types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0u unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0377 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0377 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0377ul long unsigned int (types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0377ul long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x1 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x1 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x1u unsigned int (types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x1u unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0xabL long signed int (types:
+    long signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0xabL long signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x80000000 unsigned int (types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x80000000 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0xfff signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0xfff signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0xef3daa5c unsigned int (types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0xef3daa5c unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x3LL long long signed int (types:
+    long long signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x3LL long long signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3. double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3. double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3100. double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3100. double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 1000000. double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 1000000. double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.1 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.1 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.141592654L long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.141592654L long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 123456.123456 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 123456.123456 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3E1 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3E1 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3e1f float (types:
+    float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3e1f float 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3E11F float (types:
+    float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3E11F float 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3E11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3E11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3e+11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3e+11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3E-11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3E-11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0E1 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0E1 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0E1L long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0E1L long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0e11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0e11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0E11l long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0E11l long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0e+11l long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0e+11l long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0E-11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0E-11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 123456.123456E-16 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 123456.123456E-16 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0xff.ffp0 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0xff.ffp0 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x1.ffffffffp128l long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x1.ffffffffp128l long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Name: 1
+
Index: src/Tests/Expect-r/OccursError.txt
===================================================================
--- src/Tests/Expect-r/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,303 @@
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    pointer to function
+        with parameters
+          instance of type T (not function type) 
+          pointer to instance of type T (not function type) 
+        returning 
+          nothing 
+
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to function
+          with parameters
+            instance of type T (not function type) 
+            pointer to instance of type T (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to function
+          with parameters
+            instance of type T (not function type) 
+            pointer to instance of type T (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          pointer to function
+              with parameters
+                instance of type _0_T (not function type) 
+                pointer to instance of type _0_T (not function type) 
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: forall
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    pointer to instance of type U (not function type) 
+    instance of type U (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_U (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type _1_U (not function type) 
+          instance of type _1_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: g: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_U (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type _1_U (not function type) 
+          instance of type _1_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              pointer to function
+                  with parameters
+                    instance of type T (not function type) 
+                    pointer to instance of type T (not function type) 
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  pointer to function
+                      with parameters
+                        instance of type _0_T (not function type) 
+                        pointer to instance of type _0_T (not function type) 
+                      returning 
+                        nothing 
+
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    pointer to instance of type _0_T (not function type) 
+  returning 
+    nothing 
+
+actual type is pointer to forall
+    _1_U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _1_U (not function type) 
+              instance of type _1_U (not function type) 
+            returning 
+              instance of type _1_U (not function type) 
+
+
+  function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    nothing 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+    Name: g
+
Index: src/Tests/Expect-r/Operators.txt
===================================================================
--- src/Tests/Expect-r/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1796 @@
+nameExpr is ?*?
+decl is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is number1
+decl is number1: signed int 
+newExpr is Variable Expression: number1: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: number1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: number1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is number2
+decl is number2: signed int 
+newExpr is Variable Expression: number2: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: number2: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: number2: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?*?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: number1: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: number2: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: number1: signed int 
+
+                  Variable Expression: number2: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?*?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: number1: signed int 
+
+      Variable Expression: number2: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct accumulator 
+    _src: instance of struct accumulator 
+  returning 
+    instance of struct accumulator 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  total: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct accumulator 
+              Member Expression, with field: 
+                total: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct accumulator 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct accumulator 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct accumulator 
+      _src: instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct accumulator 
+      _src: instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct accumulator 
+          _src: instance of struct accumulator 
+        returning 
+          instance of struct accumulator 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  total: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct accumulator 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    total: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct accumulator 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    total: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct accumulator 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  total: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct accumulator 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  total: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct accumulator 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct accumulator 
+              _src: instance of struct accumulator 
+            returning 
+              instance of struct accumulator 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct accumulator 
+                  _src: instance of struct accumulator 
+                returning 
+                  instance of struct accumulator 
+
+)
+        Environment: 
+formal type is pointer to instance of struct accumulator 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            total: signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct accumulator 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          total: signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct accumulator 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              total: signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct accumulator 
+
+                  Member Expression, with field: 
+            total: signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct accumulator 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        total: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct accumulator 
+
+      Member Expression, with field: 
+      total: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct accumulator 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          total: signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct accumulator 
+
+          Member Expression, with field: 
+        total: signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct accumulator 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct accumulator 
+(types:
+    lvalue instance of struct accumulator 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct accumulator 
+
+to:
+  instance of struct accumulator 
+(types:
+    instance of struct accumulator 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?()
+decl is ?(): function
+  with parameters
+    a: instance of struct accumulator 
+    number1: char 
+    number2: char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+
+decl is ?(): function
+  with parameters
+    number1: signed int 
+    number2: signed int 
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          a: instance of struct accumulator 
+          number1: char 
+          number2: char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: char 
+newExpr is Variable Expression: a: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is b
+decl is b: char 
+newExpr is Variable Expression: b: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              number1: signed int 
+              number2: signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  number1: signed int 
+                  number2: signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              a: instance of struct accumulator 
+              number1: char 
+              number2: char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  a: instance of struct accumulator 
+                  number1: char 
+                  number2: char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is instance of struct accumulator 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        number1: signed int 
+        number2: signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: char 
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: b: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 8 )
+alternatives before prune:
+Cost ( 0, 0, 8 ): Application of
+  Variable Expression: ?(): function
+      with parameters
+        number1: signed int 
+        number2: signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: char 
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: b: char 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?(): function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Cast of:
+        Variable Expression: a: char 
+
+      to:
+        signed int 
+
+          Cast of:
+        Variable Expression: b: char 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: char 
+newExpr is Variable Expression: a: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: char 
+newExpr is Variable Expression: b: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: a: char 
+(types:
+            lvalue char 
+)
+        Environment: 
+nameExpr is ?()
+decl is ?(): function
+  with parameters
+    a: instance of struct accumulator 
+    number1: char 
+    number2: char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+
+decl is ?(): function
+  with parameters
+    number1: signed int 
+    number2: signed int 
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          a: instance of struct accumulator 
+          number1: char 
+          number2: char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+known function ops:
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              number1: signed int 
+              number2: signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  number1: signed int 
+                  number2: signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              a: instance of struct accumulator 
+              number1: char 
+              number2: char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  a: instance of struct accumulator 
+                  number1: char 
+                  number2: char 
+                returning 
+                  char 
+
+)
+        Environment: 
+
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is instance of struct accumulator 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        number1: signed int 
+        number2: signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: char 
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: b: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 8 )
+alternatives before prune:
+Cost ( 0, 0, 8 ): Application of
+  Variable Expression: ?(): function
+      with parameters
+        number1: signed int 
+        number2: signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: char 
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: b: char 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?(): function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Cast of:
+        Variable Expression: a: char 
+
+      to:
+        signed int 
+
+          Cast of:
+        Variable Expression: b: char 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?+?
+decl is ?+?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: char 
+newExpr is Variable Expression: a: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is b
+decl is b: char 
+newExpr is Variable Expression: b: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: char 
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: b: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 8 )
+alternatives before prune:
+Cost ( 0, 0, 8 ): Application of
+  Variable Expression: ?+?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: char 
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: b: char 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?+?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Cast of:
+        Variable Expression: a: char 
+
+      to:
+        signed int 
+
+          Cast of:
+        Variable Expression: b: char 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?+?
+decl is ?+?: instance of struct accumulator 
+newExpr is Variable Expression: ?+?: instance of struct accumulator 
+
+decl is ?+?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: instance of struct accumulator 
+(types:
+    lvalue instance of struct accumulator 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: char 
+newExpr is Variable Expression: a: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is b
+decl is b: char 
+newExpr is Variable Expression: b: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: instance of struct accumulator 
+(types:
+            lvalue instance of struct accumulator 
+)
+        Environment: 
+nameExpr is ?()
+decl is ?(): function
+  with parameters
+    a: instance of struct accumulator 
+    number1: char 
+    number2: char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+
+decl is ?(): function
+  with parameters
+    number1: signed int 
+    number2: signed int 
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          a: instance of struct accumulator 
+          number1: char 
+          number2: char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+known function ops:
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              number1: signed int 
+              number2: signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  number1: signed int 
+                  number2: signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              a: instance of struct accumulator 
+              number1: char 
+              number2: char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  a: instance of struct accumulator 
+                  number1: char 
+                  number2: char 
+                returning 
+                  char 
+
+)
+        Environment: 
+
+formal type is signed int 
+actual type is lvalue instance of struct accumulator 
+formal type is instance of struct accumulator 
+actual type is lvalue instance of struct accumulator 
+formal type is char 
+actual type is lvalue char 
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: char 
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: b: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 8 )
+actual expression:
+        Variable Expression: ?+?: instance of struct accumulator 
+--- results are
+        lvalue instance of struct accumulator 
+
+converting lvalue instance of struct accumulator 
+ to instance of struct accumulator 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        a: instance of struct accumulator 
+        number1: char 
+        number2: char 
+actuals are:
+                  Variable Expression: ?+?: instance of struct accumulator 
+
+                  Variable Expression: a: char 
+
+                  Variable Expression: b: char 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 8 ): Application of
+  Variable Expression: ?+?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: char 
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: b: char 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?(): function
+      with parameters
+        a: instance of struct accumulator 
+        number1: char 
+        number2: char 
+      returning 
+        char 
+
+to arguments
+      Variable Expression: ?+?: instance of struct accumulator 
+
+      Variable Expression: a: char 
+
+      Variable Expression: b: char 
+
+(types:
+    char 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?(): function
+        with parameters
+          a: instance of struct accumulator 
+          number1: char 
+          number2: char 
+        returning 
+          char 
+
+  to arguments
+          Variable Expression: ?+?: instance of struct accumulator 
+
+          Variable Expression: a: char 
+
+          Variable Expression: b: char 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_multiply__Fi_ii_(int , int );
+int ___operator_call__Fi_ii_(int __number1__i, int __number2__i){
+    return ___operator_multiply__Fi_ii_(__number1__i, __number2__i);
+}
+int ___operator_add__Fi_ii_(int , int );
+int ___operator_assign__Fi_Pii_(int *, int );
+struct accumulator
+{
+    int __total__i;
+};
+static inline struct accumulator ___operator_assign__F12saccumulator_P12saccumulator12saccumulator_(struct accumulator *___dst__P12saccumulator, struct accumulator ___src__12saccumulator){
+    ___operator_assign__Fi_Pii_((&(*___dst__P12saccumulator).__total__i), ___src__12saccumulator.__total__i);
+    return ___src__12saccumulator;
+}
+char ___operator_call__Fc_12saccumulatorcc_(struct accumulator __a__12saccumulator, char __number1__c, char __number2__c);
+void __f__F__(void){
+    char __a__c;
+    char __b__c;
+    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
+    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
+    ___operator_add__Fi_ii_(((int )__a__c), ((int )__b__c));
+    struct accumulator ___operator_add__12saccumulator;
+    ___operator_call__Fc_12saccumulatorcc_(___operator_add__12saccumulator, __a__c, __b__c);
+}
Index: src/Tests/Expect-r/Quad.txt
===================================================================
--- src/Tests/Expect-r/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1851 @@
+nameExpr is ?*?
+decl is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?*?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?*?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?*?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?*?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Variable Expression: t: instance of type T (not function type) 
+
+                  Variable Expression: t: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?*?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: t: instance of type T (not function type) 
+
+      Variable Expression: t: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is square
+decl is square: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is square: pointer to function
+  with parameters
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+newExpr is Variable Expression: square: pointer to function
+    with parameters
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?*?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          t: instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: square: pointer to function
+    with parameters
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is square
+decl is square: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is square: pointer to function
+  with parameters
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+newExpr is Variable Expression: square: pointer to function
+    with parameters
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+              ?*?: pointer to function
+                  with parameters
+                    instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+        function
+        with parameters
+          t: instance of type _1_T (not function type) 
+        returning 
+          instance of type _1_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: square: pointer to function
+    with parameters
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: square: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  ?*?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              t: instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+                      ?*?: pointer to function
+                          with parameters
+                            instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                function
+                with parameters
+                  t: instance of type _1_T (not function type) 
+                returning 
+                  instance of type _1_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is lvalue instance of type U (not function type) 
+need assertions:
+?*?: pointer to function
+          with parameters
+            instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?*?: pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type U (not function type) 
+actual type is lvalue instance of type U (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: u: instance of type U (not function type) 
+--- results are
+        lvalue instance of type U (not function type) 
+
+converting lvalue instance of type U (not function type) 
+ to instance of type U (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type U (not function type) 
+actuals are:
+                  Variable Expression: u: instance of type U (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: square: pointer to function
+      with parameters
+        instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: u: instance of type U (not function type) 
+
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: square: pointer to function
+      with parameters
+        instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: u: instance of type U (not function type) 
+
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: square: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  ?*?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              t: instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      ?*?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  t: instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is instance of type U (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?*?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: pointer to function
+  with parameters
+    pointer to instance of type U (not function type) 
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to instance of type U (not function type) 
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+success!
+satisfying assertion 12 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 23 ?=?: pointer to function
+  with parameters
+    pointer to instance of type U (not function type) 
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+inferRecursive: assertion is ?*?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type U (not function type) 
+actual type is instance of type U (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+        to arguments
+                      Variable Expression: u: instance of type U (not function type) 
+
+--- results are
+        instance of type U (not function type) 
+
+converting instance of type U (not function type) 
+ to instance of type U (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type U (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: square: pointer to function
+                with parameters
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+          to arguments
+                          Variable Expression: u: instance of type U (not function type) 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: square: pointer to function
+      with parameters
+        instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: square: pointer to function
+          with parameters
+            instance of type U (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+    to arguments
+              Variable Expression: u: instance of type U (not function type) 
+
+
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: square: pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+          Application of
+        Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: u: instance of type U (not function type) 
+
+
+
+to:
+  instance of type U (not function type) 
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is quad
+decl is quad: forall
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+        square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    u: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: square: pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+          Application of
+        Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: u: instance of type U (not function type) 
+
+
+
+to:
+  instance of type U (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: quad: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: quad: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to forall
+          _0_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_U (not function type) 
+                    instance of type _0_U (not function type) 
+                  returning 
+                    instance of type _0_U (not function type) 
+
+              square: pointer to function
+                  with parameters
+                    instance of type _0_U (not function type) 
+                  returning 
+                    instance of type _0_U (not function type) 
+
+
+        function
+        with parameters
+          u: instance of type _0_U (not function type) 
+        returning 
+          instance of type _0_U (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: quad: forall
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  square: pointer to function
+                      with parameters
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              u: instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            pointer to forall
+                  _0_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_U (not function type) 
+                            instance of type _0_U (not function type) 
+                          returning 
+                            instance of type _0_U (not function type) 
+
+                      square: pointer to function
+                          with parameters
+                            instance of type _0_U (not function type) 
+                          returning 
+                            instance of type _0_U (not function type) 
+
+
+                function
+                with parameters
+                  u: instance of type _0_U (not function type) 
+                returning 
+                  instance of type _0_U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_U (not function type) 
+actual type is signed int 
+need assertions:
+square: pointer to function
+          with parameters
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_U (not function type) 
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is square: pointer to function
+  with parameters
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+inferRecursive: candidate is square: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+ with pointer to forall
+    _1_T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _1_T (not function type) 
+              instance of type _1_T (not function type) 
+            returning 
+              instance of type _1_T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type _1_T (not function type) 
+              instance of type _1_T (not function type) 
+            returning 
+              instance of type _1_T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+success!
+satisfying assertion 26 square: pointer to function
+  with parameters
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+ with declaration 19 square: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 23 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+recursing with new set:
+?*?: pointer to function
+          with parameters
+            instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)inferRecursive: assertion is ?*?: pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 16 ?*?: pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 8 ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 12 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+constant expression 7 signed int --- results are
+        signed int 
+
+converting signed int 
+ to instance of type _0_U (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_U (not function type) 
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to forall
+            _1_T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type _1_T (not function type) 
+                      instance of type _1_T (not function type) 
+                    returning 
+                      instance of type _1_T (not function type) 
+
+                ?*?: pointer to function
+                    with parameters
+                      instance of type _1_T (not function type) 
+                      instance of type _1_T (not function type) 
+                    returning 
+                      instance of type _1_T (not function type) 
+
+
+          function
+          with parameters
+            t: instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+ to pointer to function
+          with parameters
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        u: instance of type _0_U (not function type) 
+actuals are:
+        constant expression 7 signed int 
+bindings are:
+        ( _0_U _1_T ) -> signed int  (no widening)
+cost of conversion is:( 0, 20, 0 )
+alternatives before prune:
+Cost ( 0, 20, 0 ): Application of
+  Variable Expression: quad: forall
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            square: pointer to function
+                with parameters
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        u: instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+  constant expression 7 signed int 
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    instance of type _0_U (not function type) 
+)
+Environment:   ( _0_U _1_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: quad: forall
+          U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type U (not function type) 
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+              square: pointer to function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+
+        function
+        with parameters
+          u: instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+    constant expression 7 signed int 
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+    ?*?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+    square: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            ?*?: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        t: instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_U _1_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_assign__Fi_Pii_(int *, int );
+int ___operator_multiply__Fi_ii_(int , int );
+void __square__A1_0_0____operator_assign__PFt0_Pt0t0____operator_multiply__PFt0_t0t0__Ft0_t0_(void (*_adapterF2tT_2tT2tT_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_multiply__PF2tT_2tT2tT_)(), void *_retparm, void *__t__2tT){
+    _adapterF2tT_2tT2tT_(___operator_multiply__PF2tT_2tT2tT_, _retparm, __t__2tT, __t__2tT);
+    return ;
+}
+void __quad__A1_0_0____operator_assign__PFt0_Pt0t0___square__PFt0_t0__Ft0_t0_(void (*_adapterF2tU_2tU_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), long unsigned int U, void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__square__PF2tU_2tU_)(), void *_retparm, void *__u__2tU){
+    void *_temp0;
+    (_temp0=__builtin_alloca(U));
+    _adapterF2tU_2tU_(__square__PF2tU_2tU_, _retparm, (_adapterF2tU_2tU_(__square__PF2tU_2tU_, _temp0, __u__2tU) , _temp0));
+    return ;
+}
+void __f__F__(){
+    int _thunk0(int _p0){
+        int _temp1;
+        void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+            ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+        }
+        void _adapterFi_ii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+            ((*((int *)_ret))=((int (*)(int , int ))_adaptee)((*((int *)_p0)), (*((int *)_p1))));
+        }
+        return (__square__A1_0_0____operator_assign__PFt0_Pt0t0____operator_multiply__PFt0_t0t0__Ft0_t0_(_adapterFi_ii_, _adapterFi_Pii_, sizeof(int ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_multiply__Fi_ii_), (&_temp1), (&_p0)) , _temp1);
+    }
+    int _temp2;
+    int _temp3;
+    (_temp3=7);
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFi_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((int *)_ret))=((int (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    (__quad__A1_0_0____operator_assign__PFt0_Pt0t0___square__PFt0_t0__Ft0_t0_(_adapterFi_i_, _adapterFi_Pii_, sizeof(int ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())(&_thunk0)), (&_temp2), (&_temp3)) , _temp2);
+}
Index: src/Tests/Expect-r/Rank2.txt
===================================================================
--- src/Tests/Expect-r/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3600 @@
+nameExpr is g
+decl is g: function
+  with parameters
+    p: pointer to forall
+          U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type U (not function type) 
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+
+        function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          nothing 
+
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      p: pointer to forall
+            U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type U (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+
+          function
+          with parameters
+            instance of type U (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      p: pointer to forall
+            U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type U (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+
+          function
+          with parameters
+            instance of type U (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          p: pointer to forall
+                _0_U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type _0_U (not function type) 
+                          instance of type _0_U (not function type) 
+                        returning 
+                          instance of type _0_U (not function type) 
+
+
+              function
+              with parameters
+                instance of type _0_U (not function type) 
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              p: pointer to forall
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  p: pointer to forall
+                        _0_U: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type _0_U (not function type) 
+                                  instance of type _0_U (not function type) 
+                                returning 
+                                  instance of type _0_U (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type _0_U (not function type) 
+                      returning 
+                        nothing 
+
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to forall
+    _0_U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_U (not function type) 
+              instance of type _0_U (not function type) 
+            returning 
+              instance of type _0_U (not function type) 
+
+
+  function
+  with parameters
+    instance of type _0_U (not function type) 
+  returning 
+    nothing 
+
+actual type is pointer to forall
+    _1_T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _1_T (not function type) 
+              instance of type _1_T (not function type) 
+            returning 
+              instance of type _1_T (not function type) 
+
+
+  function
+  with parameters
+    instance of type _1_T (not function type) 
+  returning 
+    nothing 
+
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to forall
+    _2_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _2_DT (not function type) 
+    pointer to instance of type _2_DT (not function type) 
+  returning 
+    pointer to instance of type _2_DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+success!
+satisfying assertion 12 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 18 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+actual expression:
+        Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+--- results are
+        pointer to forall
+              _1_T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type _1_T (not function type) 
+                        instance of type _1_T (not function type) 
+                      returning 
+                        instance of type _1_T (not function type) 
+
+
+            function
+            with parameters
+              instance of type _1_T (not function type) 
+            returning 
+              nothing 
+
+
+converting pointer to forall
+            _1_T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type _1_T (not function type) 
+                      instance of type _1_T (not function type) 
+                    returning 
+                      instance of type _1_T (not function type) 
+
+
+          function
+          with parameters
+            instance of type _1_T (not function type) 
+          returning 
+            nothing 
+
+ to pointer to forall
+            _0_U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type _0_U (not function type) 
+                      instance of type _0_U (not function type) 
+                    returning 
+                      instance of type _0_U (not function type) 
+
+
+          function
+          with parameters
+            instance of type _0_U (not function type) 
+          returning 
+            nothing 
+
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to instance of type _0_U (not function type) 
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        p: pointer to forall
+              _0_U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type _0_U (not function type) 
+                        instance of type _0_U (not function type) 
+                      returning 
+                        instance of type _0_U (not function type) 
+
+
+            function
+            with parameters
+              instance of type _0_U (not function type) 
+            returning 
+              nothing 
+
+actuals are:
+                  Variable Expression: f: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                nothing 
+
+
+bindings are:
+        ( _1_T ) -> instance of type _0_U (not function type)  (no widening)
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        p: pointer to forall
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          nothing 
+
+
+with inferred parameters:
+  ?=?: pointer to function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+)
+Environment:   ( _1_T ) -> instance of type _0_U (not function type)  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          p: pointer to forall
+                U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type U (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+
+              function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+  to arguments
+          Variable Expression: f: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            nothing 
+
+
+  with inferred parameters:
+    ?=?: pointer to function
+      with parameters
+        pointer to instance of type U (not function type) 
+        instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _1_T ) -> instance of type _0_U (not function type)  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is h
+decl is h: function
+  with parameters
+    null: pointer to signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: h: function
+    with parameters
+      null: pointer to signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: h: function
+    with parameters
+      null: pointer to signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          null: pointer to signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is id
+decl is id: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is id
+decl is id: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+        returning 
+          instance of type _1_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is id
+decl is id: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _2_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _2_T (not function type) 
+                    instance of type _2_T (not function type) 
+                  returning 
+                    instance of type _2_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _2_T (not function type) 
+        returning 
+          instance of type _2_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+decl is 0: forall
+    T: incomplete type
+  pointer to instance of type T (not function type) 
+newExpr is Variable Expression: 0: forall
+      T: incomplete type
+    pointer to instance of type T (not function type) 
+
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: forall
+      T: incomplete type
+    pointer to instance of type T (not function type) 
+(types:
+    forall
+          _3_T: incomplete type
+        lvalue pointer to instance of type _3_T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: forall
+      T: incomplete type
+    pointer to instance of type T (not function type) 
+(types:
+    forall
+          _3_T: incomplete type
+        lvalue pointer to instance of type _3_T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _2_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _2_T (not function type) 
+                            instance of type _2_T (not function type) 
+                          returning 
+                            instance of type _2_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _2_T (not function type) 
+                returning 
+                  instance of type _2_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _2_T (not function type) 
+actual type is lvalue signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_T (not function type) 
+            instance of type _2_T (not function type) 
+          returning 
+            instance of type _2_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with pointer to forall
+    _4_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _4_DT (not function type) 
+    pointer to instance of type _4_DT (not function type) 
+  returning 
+    pointer to instance of type _4_DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+formal type is instance of type _2_T (not function type) 
+actual type is forall
+    _3_T: incomplete type
+  lvalue pointer to instance of type _3_T (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_T (not function type) 
+            instance of type _2_T (not function type) 
+          returning 
+            instance of type _2_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with pointer to forall
+    _5_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _5_DT (not function type) 
+    pointer to instance of type _5_DT (not function type) 
+  returning 
+    pointer to instance of type _5_DT (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with declaration 8 ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _2_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_T (not function type) 
+            instance of type _2_T (not function type) 
+          returning 
+            instance of type _2_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _2_T (not function type) 
+actuals are:
+                  Variable Expression: 0: signed int 
+
+bindings are:
+        ( _2_T ) -> signed int 
+cost of conversion is:( 0, 4, 0 )
+actual expression:
+        Variable Expression: 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+--- results are
+        forall
+              _3_T: incomplete type
+            lvalue pointer to instance of type _3_T (not function type) 
+
+converting forall
+            _3_T: incomplete type
+          lvalue pointer to instance of type _3_T (not function type) 
+ to instance of type _2_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to forall
+            _5_DT: incomplete type
+          function
+          with parameters
+            pointer to pointer to instance of type _5_DT (not function type) 
+            pointer to instance of type _5_DT (not function type) 
+          returning 
+            pointer to instance of type _5_DT (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_T (not function type) 
+            instance of type _2_T (not function type) 
+          returning 
+            instance of type _2_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _2_T (not function type) 
+actuals are:
+                  Variable Expression: 0: forall
+                T: incomplete type
+              pointer to instance of type T (not function type) 
+
+bindings are:
+        ( _2_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+        ( _3_T _5_DT ) (no widening)
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: 0: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    instance of type _2_T (not function type) 
+)
+Environment:   ( _2_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: 0: forall
+          T: incomplete type
+        pointer to instance of type T (not function type) 
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    instance of type _2_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT ) (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: 0: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    signed int 
+)
+Environment:   ( _2_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: 0: forall
+          T: incomplete type
+        pointer to instance of type T (not function type) 
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    forall
+          _3_T: incomplete type
+        pointer to instance of type _3_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT ) (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _1_T (not function type) 
+                returning 
+                  instance of type _1_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to forall
+    _6_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _6_DT (not function type) 
+    pointer to instance of type _6_DT (not function type) 
+  returning 
+    pointer to instance of type _6_DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+formal type is instance of type _1_T (not function type) 
+actual type is forall
+    _3_T: incomplete type
+  pointer to instance of type _3_T (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to forall
+    _7_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _7_DT (not function type) 
+    pointer to instance of type _7_DT (not function type) 
+  returning 
+    pointer to instance of type _7_DT (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 8 ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Variable Expression: 0: signed int 
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+
+bindings are:
+        ( _2_T ) -> signed int  (no widening)
+        ( _1_T ) -> signed int 
+cost of conversion is:( 0, 4, 0 )
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: forall
+                  T: incomplete type
+                pointer to instance of type T (not function type) 
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+--- results are
+        forall
+              _3_T: incomplete type
+            pointer to instance of type _3_T (not function type) 
+
+converting forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to forall
+            _7_DT: incomplete type
+          function
+          with parameters
+            pointer to pointer to instance of type _7_DT (not function type) 
+            pointer to instance of type _7_DT (not function type) 
+          returning 
+            pointer to instance of type _7_DT (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Variable Expression: 0: forall
+                    T: incomplete type
+                  pointer to instance of type T (not function type) 
+
+          with inferred parameters:
+            ?=?: forall
+                DT: incomplete type
+              function
+              with parameters
+                pointer to pointer to instance of type DT (not function type) 
+                pointer to instance of type DT (not function type) 
+              returning 
+                pointer to instance of type DT (not function type) 
+
+
+bindings are:
+        ( _2_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _1_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+        ( _3_T _5_DT _7_DT ) (no widening)
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: 0: signed int 
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    instance of type _1_T (not function type) 
+)
+Environment:   ( _2_T ) -> signed int  (no widening)
+  ( _1_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    instance of type _1_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT _7_DT ) (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: 0: signed int 
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    signed int 
+)
+Environment:   ( _2_T ) -> signed int  (no widening)
+  ( _1_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    forall
+          _3_T: incomplete type
+        pointer to instance of type _3_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT _7_DT ) (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to forall
+    _8_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _8_DT (not function type) 
+    pointer to instance of type _8_DT (not function type) 
+  returning 
+    pointer to instance of type _8_DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+formal type is instance of type _0_T (not function type) 
+actual type is forall
+    _3_T: incomplete type
+  pointer to instance of type _3_T (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to forall
+    _9_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _9_DT (not function type) 
+    pointer to instance of type _9_DT (not function type) 
+  returning 
+    pointer to instance of type _9_DT (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 8 ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Application of
+              Variable Expression: id: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+            to arguments
+                              Variable Expression: 0: signed int 
+
+            with inferred parameters:
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Application of
+                Variable Expression: id: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+              to arguments
+                                  Variable Expression: 0: signed int 
+
+              with inferred parameters:
+                ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+
+bindings are:
+        ( _2_T ) -> signed int  (no widening)
+        ( _1_T ) -> signed int  (no widening)
+        ( _0_T ) -> signed int 
+cost of conversion is:( 0, 4, 0 )
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Application of
+              Variable Expression: id: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+            to arguments
+                              Variable Expression: 0: forall
+                      T: incomplete type
+                    pointer to instance of type T (not function type) 
+
+            with inferred parameters:
+              ?=?: forall
+                  DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type DT (not function type) 
+                  pointer to instance of type DT (not function type) 
+                returning 
+                  pointer to instance of type DT (not function type) 
+
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+--- results are
+        forall
+              _3_T: incomplete type
+            pointer to instance of type _3_T (not function type) 
+
+converting forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to forall
+            _9_DT: incomplete type
+          function
+          with parameters
+            pointer to pointer to instance of type _9_DT (not function type) 
+            pointer to instance of type _9_DT (not function type) 
+          returning 
+            pointer to instance of type _9_DT (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Application of
+                Variable Expression: id: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+              to arguments
+                                  Variable Expression: 0: forall
+                        T: incomplete type
+                      pointer to instance of type T (not function type) 
+
+              with inferred parameters:
+                ?=?: forall
+                    DT: incomplete type
+                  function
+                  with parameters
+                    pointer to pointer to instance of type DT (not function type) 
+                    pointer to instance of type DT (not function type) 
+                  returning 
+                    pointer to instance of type DT (not function type) 
+
+
+          with inferred parameters:
+            ?=?: forall
+                DT: incomplete type
+              function
+              with parameters
+                pointer to pointer to instance of type DT (not function type) 
+                pointer to instance of type DT (not function type) 
+              returning 
+                pointer to instance of type DT (not function type) 
+
+
+bindings are:
+        ( _2_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _1_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _0_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+        ( _3_T _5_DT _7_DT _9_DT ) (no widening)
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _2_T ) -> signed int  (no widening)
+  ( _1_T ) -> signed int  (no widening)
+  ( _0_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: forall
+                  T: incomplete type
+                pointer to instance of type T (not function type) 
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _0_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT _7_DT _9_DT ) (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    signed int 
+)
+Environment:   ( _2_T ) -> signed int  (no widening)
+  ( _1_T ) -> signed int  (no widening)
+  ( _0_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: forall
+                  T: incomplete type
+                pointer to instance of type T (not function type) 
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    forall
+          _3_T: incomplete type
+        pointer to instance of type _3_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _0_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT _7_DT _9_DT ) (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: h: function
+            with parameters
+              null: pointer to signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  null: pointer to signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is signed int 
+formal type is pointer to signed int 
+actual type is forall
+    _3_T: incomplete type
+  pointer to instance of type _3_T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Application of
+              Variable Expression: id: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+            to arguments
+                              Application of
+                  Variable Expression: id: forall
+                        T: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type T (not function type) 
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type T (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                to arguments
+                                      Variable Expression: 0: forall
+                          T: incomplete type
+                        pointer to instance of type T (not function type) 
+
+                with inferred parameters:
+                  ?=?: forall
+                      DT: incomplete type
+                    function
+                    with parameters
+                      pointer to pointer to instance of type DT (not function type) 
+                      pointer to instance of type DT (not function type) 
+                    returning 
+                      pointer to instance of type DT (not function type) 
+
+
+            with inferred parameters:
+              ?=?: forall
+                  DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type DT (not function type) 
+                  pointer to instance of type DT (not function type) 
+                returning 
+                  pointer to instance of type DT (not function type) 
+
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+--- results are
+        forall
+              _3_T: incomplete type
+            pointer to instance of type _3_T (not function type) 
+
+converting forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        null: pointer to signed int 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Application of
+                Variable Expression: id: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+              to arguments
+                                  Application of
+                    Variable Expression: id: forall
+                          T: type
+                            with assertions
+                              ?=?: pointer to function
+                                  with parameters
+                                    pointer to instance of type T (not function type) 
+                                    instance of type T (not function type) 
+                                  returning 
+                                    instance of type T (not function type) 
+
+
+                        function
+                        with parameters
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+                  to arguments
+                                          Variable Expression: 0: forall
+                            T: incomplete type
+                          pointer to instance of type T (not function type) 
+
+                  with inferred parameters:
+                    ?=?: forall
+                        DT: incomplete type
+                      function
+                      with parameters
+                        pointer to pointer to instance of type DT (not function type) 
+                        pointer to instance of type DT (not function type) 
+                      returning 
+                        pointer to instance of type DT (not function type) 
+
+
+              with inferred parameters:
+                ?=?: forall
+                    DT: incomplete type
+                  function
+                  with parameters
+                    pointer to pointer to instance of type DT (not function type) 
+                    pointer to instance of type DT (not function type) 
+                  returning 
+                    pointer to instance of type DT (not function type) 
+
+
+          with inferred parameters:
+            ?=?: forall
+                DT: incomplete type
+              function
+              with parameters
+                pointer to pointer to instance of type DT (not function type) 
+                pointer to instance of type DT (not function type) 
+              returning 
+                pointer to instance of type DT (not function type) 
+
+
+bindings are:
+        ( _2_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _1_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _0_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _3_T _5_DT _7_DT _9_DT ) -> signed int  (no widening)
+cost of conversion is:( 0, 1, 0 )
+alternatives before prune:
+Cost ( 0, 1, 0 ): Application of
+  Variable Expression: h: function
+      with parameters
+        null: pointer to signed int 
+      returning 
+        nothing 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Application of
+              Variable Expression: id: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+            to arguments
+                              Variable Expression: 0: forall
+                      T: incomplete type
+                    pointer to instance of type T (not function type) 
+
+            with inferred parameters:
+              ?=?: forall
+                  DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type DT (not function type) 
+                  pointer to instance of type DT (not function type) 
+                returning 
+                  pointer to instance of type DT (not function type) 
+
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+(types:
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _0_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _3_T _5_DT _7_DT _9_DT ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: h: function
+        with parameters
+          null: pointer to signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Application of
+        Variable Expression: id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+      to arguments
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Application of
+                Variable Expression: id: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+              to arguments
+                                  Variable Expression: 0: forall
+                        T: incomplete type
+                      pointer to instance of type T (not function type) 
+
+              with inferred parameters:
+                ?=?: forall
+                    DT: incomplete type
+                  function
+                  with parameters
+                    pointer to pointer to instance of type DT (not function type) 
+                    pointer to instance of type DT (not function type) 
+                  returning 
+                    pointer to instance of type DT (not function type) 
+
+
+          with inferred parameters:
+            ?=?: forall
+                DT: incomplete type
+              function
+              with parameters
+                pointer to pointer to instance of type DT (not function type) 
+                pointer to instance of type DT (not function type) 
+              returning 
+                pointer to instance of type DT (not function type) 
+
+
+      with inferred parameters:
+        ?=?: forall
+            DT: incomplete type
+          function
+          with parameters
+            pointer to pointer to instance of type DT (not function type) 
+            pointer to instance of type DT (not function type) 
+          returning 
+            pointer to instance of type DT (not function type) 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _0_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _3_T _5_DT _7_DT _9_DT ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_assign__Fi_Pii_(int *, int );
+void *___operator_assign__A0_1_0__FPd0_PPd0Pd0_(void **, void *);
+void __a__F__(){
+    void __f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *);
+    void __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(void (*__p__PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0_)(void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), long unsigned int U, void (*___operator_assign__PF2tU_P2tU2tU_)(), void *));
+    __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(__f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_);
+}
+void __g__F__(){
+    void __h__F_Pi_(int *__null__Pi);
+    void __id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *, void *);
+    void *___constant_zero__A0_1_0__Pd0;
+    int ___constant_zero__i;
+    void *_thunk0(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_thunk1(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_thunk2(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_temp0;
+    void _adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((_3_T **)_ret))=((void *(*)(void **, void *))_adaptee)(_p0, (*((_3_T **)_p1))));
+    }
+    void *_temp1;
+    void *_temp2;
+    __h__F_Pi_((__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk2)), (&_temp2), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk1)), (&_temp1), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk0)), (&_temp0), (&___constant_zero__A0_1_0__Pd0)) , _temp0))) , _temp1))) , _temp2));
+}
Index: src/Tests/Expect-r/Scope.txt
===================================================================
--- src/Tests/Expect-r/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3706 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: double 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type u (not function type) 
+(types:
+    lvalue pointer to instance of type u (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is y
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is u
+nameExpr is t
+decl is t: function
+  with parameters
+    instance of type u (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type u (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is z
+decl is z: double 
+newExpr is Variable Expression: z: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+nameExpr is t
+decl is t: function
+  with parameters
+    instance of type u (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type u (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+nameExpr is u
+decl is u: pointer to function
+  with parameters
+    instance of type t (not function type) 
+  returning 
+    instance of type t (not function type) 
+
+newExpr is Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_t
+decl is the_t: instance of type t (not function type) 
+newExpr is Variable Expression: the_t: instance of type t (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+)
+        Environment: 
+formal type is instance of type t (not function type) 
+actual type is lvalue instance of type t (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: the_t: instance of type t (not function type) 
+--- results are
+        lvalue instance of type t (not function type) 
+
+converting lvalue instance of type t (not function type) 
+ to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type t (not function type) 
+actuals are:
+                  Variable Expression: the_t: instance of type t (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: u: pointer to function
+      with parameters
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Variable Expression: the_t: instance of type t (not function type) 
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: u: pointer to function
+        with parameters
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+  to arguments
+          Variable Expression: the_t: instance of type t (not function type) 
+
+
+to:
+  instance of type t (not function type) 
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type t (not function type) 
+    instance of type t (not function type) 
+  returning 
+    instance of type t (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type t (not function type) 
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type t (not function type) 
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type t (not function type) 
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+nameExpr is y
+decl is y: instance of type t (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Application of
+      Variable Expression: u: pointer to function
+          with parameters
+            instance of type t (not function type) 
+          returning 
+            instance of type t (not function type) 
+
+    to arguments
+              Variable Expression: the_t: instance of type t (not function type) 
+
+
+  to:
+    instance of type t (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: y: instance of type t (not function type) 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: instance of type t (not function type) 
+(types:
+    pointer to instance of type t (not function type) 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: instance of type t (not function type) 
+(types:
+    pointer to instance of type t (not function type) 
+)
+Environment: 
+
+nameExpr is u
+decl is u: pointer to function
+  with parameters
+    instance of type t (not function type) 
+  returning 
+    instance of type t (not function type) 
+
+newExpr is Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_t
+decl is the_t: instance of type t (not function type) 
+newExpr is Variable Expression: the_t: instance of type t (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+)
+        Environment: 
+formal type is instance of type t (not function type) 
+actual type is lvalue instance of type t (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: the_t: instance of type t (not function type) 
+--- results are
+        lvalue instance of type t (not function type) 
+
+converting lvalue instance of type t (not function type) 
+ to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type t (not function type) 
+actuals are:
+                  Variable Expression: the_t: instance of type t (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: u: pointer to function
+      with parameters
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Variable Expression: the_t: instance of type t (not function type) 
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: u: pointer to function
+      with parameters
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Variable Expression: the_t: instance of type t (not function type) 
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to instance of type t (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to instance of type t (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type t (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type t (not function type) 
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type t (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type t (not function type) 
+actual type is pointer to instance of type t (not function type) 
+formal type is instance of type t (not function type) 
+actual type is instance of type t (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: y: instance of type t (not function type) 
+--- results are
+        pointer to instance of type t (not function type) 
+
+converting pointer to instance of type t (not function type) 
+ to pointer to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Application of
+          Variable Expression: u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+        to arguments
+                      Variable Expression: the_t: instance of type t (not function type) 
+
+--- results are
+        instance of type t (not function type) 
+
+converting instance of type t (not function type) 
+ to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type t (not function type) 
+        instance of type t (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: y: instance of type t (not function type) 
+
+                  Application of
+            Variable Expression: u: pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+          to arguments
+                          Variable Expression: the_t: instance of type t (not function type) 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type t (not function type) 
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: y: instance of type t (not function type) 
+
+      Application of
+      Variable Expression: u: pointer to function
+          with parameters
+            instance of type t (not function type) 
+          returning 
+            instance of type t (not function type) 
+
+    to arguments
+              Variable Expression: the_t: instance of type t (not function type) 
+
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type t (not function type) 
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: y: instance of type t (not function type) 
+
+          Application of
+        Variable Expression: u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+      to arguments
+                  Variable Expression: the_t: instance of type t (not function type) 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: char 
+newExpr is Variable Expression: x: char 
+
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: x: char 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is z
+decl is z: char with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: x: char 
+
+  to:
+    char 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: z: char 
+
+decl is z: double 
+newExpr is Variable Expression: z: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: z: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+nameExpr is x
+decl is x: char 
+newExpr is Variable Expression: x: char 
+
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: y: char 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is x
+decl is x: char 
+newExpr is Variable Expression: x: char 
+
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: y: char 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is q
+decl is q: forall
+    t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type t (not function type) 
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type t (not function type) 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+      Declaration of y: instance of type t (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Application of
+              Variable Expression: u: pointer to function
+                  with parameters
+                    instance of type t (not function type) 
+                  returning 
+                    instance of type t (not function type) 
+
+            to arguments
+                              Variable Expression: the_t: instance of type t (not function type) 
+
+
+          to:
+            instance of type t (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: y: instance of type t (not function type) 
+
+                          Application of
+                Variable Expression: u: pointer to function
+                    with parameters
+                      instance of type t (not function type) 
+                    returning 
+                      instance of type t (not function type) 
+
+              to arguments
+                                  Variable Expression: the_t: instance of type t (not function type) 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+
+newExpr is Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+
+decl is q: char with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: y: char 
+
+  to:
+    char 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: q: char 
+
+decl is q: double 
+newExpr is Variable Expression: q: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+(types:
+    forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        lvalue function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: forall
+        t: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+            u: pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+
+      function
+      with parameters
+        the_t: instance of type t (not function type) 
+      returning 
+        double 
+
+(types:
+    pointer to forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: forall
+        t: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+            u: pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+
+      function
+      with parameters
+        the_t: instance of type t (not function type) 
+      returning 
+        double 
+
+(types:
+    pointer to forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+nameExpr is some_func
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is q
+decl is q: forall
+    t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type t (not function type) 
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type t (not function type) 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+      Declaration of y: instance of type t (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Application of
+              Variable Expression: u: pointer to function
+                  with parameters
+                    instance of type t (not function type) 
+                  returning 
+                    instance of type t (not function type) 
+
+            to arguments
+                              Variable Expression: the_t: instance of type t (not function type) 
+
+
+          to:
+            instance of type t (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: y: instance of type t (not function type) 
+
+                          Application of
+                Variable Expression: u: pointer to function
+                    with parameters
+                      instance of type t (not function type) 
+                    returning 
+                      instance of type t (not function type) 
+
+              to arguments
+                                  Variable Expression: the_t: instance of type t (not function type) 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+
+newExpr is Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+
+decl is q: function
+    accepting unspecified arguments
+  returning 
+    double 
+  with parameter names
+    i
+  with parameter declarations
+    i: signed int 
+  with body 
+    CompoundStmt
+              Switch on condition: Variable Expression: i: signed int 
+with environment:
+  Types:
+  Non-types:
+
+            Case Name: 0
+
+                Return Statement, returning: Name: q
+
+            Default 
+                Return Statement, returning: Name: i
+
+
+
+newExpr is Variable Expression: q: function
+      accepting unspecified arguments
+    returning 
+      double 
+
+
+decl is q: char with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: y: char 
+
+  to:
+    char 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: q: char 
+
+decl is q: double 
+newExpr is Variable Expression: q: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+(types:
+    pointer to forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: function
+      accepting unspecified arguments
+    returning 
+      double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          double 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: q: double 
+
+to:
+  double 
+(types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 6 ): Cast of:
+  Variable Expression: i: signed int 
+
+to:
+  double 
+(types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      b: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+to:
+  pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: y
+
+to:
+  instance of type u (not function type) 
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: z
+    Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+    Name: y
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: q
+    Name: y
+
+Error: No reasonable alternatives for expression Name: some_func
+
Index: src/Tests/Expect-r/ScopeErrors.txt
===================================================================
--- src/Tests/Expect-r/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Expect-r/ShortCircuit.txt
===================================================================
--- src/Tests/Expect-r/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3202 @@
+nameExpr is g
+decl is g: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 10 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 10 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is c
+decl is c: float 
+newExpr is Variable Expression: c: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+alternatives before prune:
+Cost ( 0, 0, 0 ): Conditional expression on: 
+  Cast of:
+    Application of
+      Variable Expression: ?!=?: function
+          with parameters
+            signed int 
+            signed int 
+          returning 
+            signed int 
+
+    to arguments
+              Variable Expression: a: signed int 
+
+              Variable Expression: 0: signed int 
+
+
+  to:
+    signed int 
+First alternative:
+  Variable Expression: b: signed int 
+Second alternative:
+  Variable Expression: c: float 
+
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Conditional expression on: 
+  Cast of:
+    Application of
+      Variable Expression: ?!=?: function
+          with parameters
+            signed int 
+            signed int 
+          returning 
+            signed int 
+
+    to arguments
+              Variable Expression: a: signed int 
+
+              Variable Expression: 0: signed int 
+
+
+  to:
+    signed int 
+First alternative:
+  Variable Expression: b: signed int 
+Second alternative:
+  Variable Expression: c: float 
+
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Conditional expression on: 
+          Cast of:
+            Application of
+              Variable Expression: ?!=?: function
+                  with parameters
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Variable Expression: a: signed int 
+
+                              Variable Expression: 0: signed int 
+
+
+          to:
+            signed int 
+        First alternative:
+          Variable Expression: b: signed int 
+        Second alternative:
+          Variable Expression: c: float 
+
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Conditional expression on: 
+              Cast of:
+                Application of
+                  Variable Expression: ?!=?: function
+                      with parameters
+                        signed int 
+                        signed int 
+                      returning 
+                        signed int 
+
+                to arguments
+                                      Variable Expression: a: signed int 
+
+                                      Variable Expression: 0: signed int 
+
+
+              to:
+                signed int 
+            First alternative:
+              Variable Expression: b: signed int 
+            Second alternative:
+              Variable Expression: c: float 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Conditional expression on: 
+          Cast of:
+            Application of
+              Variable Expression: ?!=?: function
+                  with parameters
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Variable Expression: a: signed int 
+
+                              Variable Expression: 0: signed int 
+
+
+          to:
+            signed int 
+        First alternative:
+          Variable Expression: b: signed int 
+        Second alternative:
+          Variable Expression: c: float 
+
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Conditional expression on: 
+            Cast of:
+              Application of
+                Variable Expression: ?!=?: function
+                    with parameters
+                      signed int 
+                      signed int 
+                    returning 
+                      signed int 
+
+              to arguments
+                                  Variable Expression: a: signed int 
+
+                                  Variable Expression: 0: signed int 
+
+
+            to:
+              signed int 
+          First alternative:
+            Variable Expression: b: signed int 
+          Second alternative:
+            Variable Expression: c: float 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Conditional expression on: 
+        Cast of:
+          Application of
+            Variable Expression: ?!=?: function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Variable Expression: a: signed int 
+
+                          Variable Expression: 0: signed int 
+
+
+        to:
+          signed int 
+      First alternative:
+        Variable Expression: b: signed int 
+      Second alternative:
+        Variable Expression: c: float 
+
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Conditional expression on: 
+      Cast of:
+        Application of
+          Variable Expression: ?!=?: function
+              with parameters
+                signed int 
+                signed int 
+              returning 
+                signed int 
+
+        to arguments
+                      Variable Expression: a: signed int 
+
+                      Variable Expression: 0: signed int 
+
+
+      to:
+        signed int 
+    First alternative:
+      Variable Expression: b: signed int 
+    Second alternative:
+      Variable Expression: c: float 
+
+
+(types:
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+  to arguments
+          Conditional expression on: 
+        Cast of:
+          Application of
+            Variable Expression: ?!=?: function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Variable Expression: a: signed int 
+
+                          Variable Expression: 0: signed int 
+
+
+        to:
+          signed int 
+      First alternative:
+        Variable Expression: b: signed int 
+      Second alternative:
+        Variable Expression: c: float 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 10 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 10 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is c
+decl is c: float 
+newExpr is Variable Expression: c: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue float 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: c: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: c: float 
+
+          to:
+            signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: c: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Variable Expression: c: float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: c: float 
+
+    to:
+      signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: c: float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+cost ( 0, 0, 5 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: g: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+    to:
+      float 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 10 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 10 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: b: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: b: signed int 
+
+          to:
+            float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 10 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: b: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 10 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: b: signed int 
+
+    to:
+      float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: g: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+    to:
+      float 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_notequal__Fi_ii_(int , int );
+int ___operator_notequal__Fi_ff_(float , float );
+int ___constant_zero__i;
+void __g__F_f_(float );
+void __g__F_i_(int );
+void __f__F_i_(int __a__i){
+    int __b__i;
+    float __c__f;
+    __g__F_f_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) ? __b__i : __c__f));
+    __g__F_i_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) && ((int )___operator_notequal__Fi_ff_(__c__f, ((float )___constant_zero__i)))));
+    __g__F_i_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) || ((int )___operator_notequal__Fi_ii_(__b__i, ___constant_zero__i))));
+}
Index: src/Tests/Expect-r/Statement.txt
===================================================================
--- src/Tests/Expect-r/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1039 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            b: signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous0 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          b: signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous0 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              b: signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous0 
+
+                  Member Expression, with field: 
+            b: signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous0 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+
+      Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          b: signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous0 
+
+          Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous0 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: instance of struct __anonymous0 
+newExpr is Variable Expression: a: instance of struct __anonymous0 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+__anonymous0
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+__anonymous0
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue instance of struct __anonymous0 
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: instance of struct __anonymous0 
+newExpr is Variable Expression: a: instance of struct __anonymous0 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue instance of struct __anonymous0 
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: pointer to signed int 
+newExpr is Variable Expression: b: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: pointer to signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: instance of struct __anonymous0 
+newExpr is Variable Expression: a: instance of struct __anonymous0 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue instance of struct __anonymous0 
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: pointer to signed int 
+newExpr is Variable Expression: b: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: pointer to signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_assign__Fi_Pii_(int *, int );
+int ___operator_notequal__Fi_ii_(int , int );
+int ___constant_zero__i;
+void __f__F__(){
+    int __a__i;
+    struct __anonymous0
+    {
+        int __b__i;
+    };
+    inline struct __anonymous0 ___operator_assign__F13s__anonymous0_P13s__anonymous013s__anonymous0_(struct __anonymous0 *___dst__P13s__anonymous0, struct __anonymous0 ___src__13s__anonymous0){
+        ___operator_assign__Fi_Pii_((&(*___dst__P13s__anonymous0).__b__i), ___src__13s__anonymous0.__b__i);
+        return ___src__13s__anonymous0;
+    }
+    struct __anonymous0 __a__13s__anonymous0;
+    if (((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i))) {
+        while (((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i))) {
+            int *__b__Pi;
+            for (__b__Pi;((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i));__b__Pi) {
+            }
+
+        }        
+
+    }
+
+}
Index: src/Tests/Expect-r/StructMember.txt
===================================================================
--- src/Tests/Expect-r/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,23906 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m1: signed int with bitfield width constant expression 3 signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m1: signed int with bitfield width constant expression 3 signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m1: signed int with bitfield width constant expression 3 signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m1: signed int with bitfield width constant expression 3 signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m1: signed int with bitfield width constant expression 3 signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m2: signed int with bitfield width constant expression 4 signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m2: signed int with bitfield width constant expression 4 signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m2: signed int with bitfield width constant expression 4 signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m2: signed int with bitfield width constant expression 4 signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m2: signed int with bitfield width constant expression 4 signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m4: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m4: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m4: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m4: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m4: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m5: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m5: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m5: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m5: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m5: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m6: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m6: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m6: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m6: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m6: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m7: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m7: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m7: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m7: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m7: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m8: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m8: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m8: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m8: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m8: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m9: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m9: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m9: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m9: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m9: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m10: pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m10: pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m10: pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m10: pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m10: pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to function
+    accepting unspecified arguments
+  returning 
+    signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m11: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m11: pointer to function
+      with parameters
+        signed int 
+      returning 
+        pointer to signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m11: pointer to function
+      with parameters
+        signed int 
+      returning 
+        pointer to signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m11: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m11: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to function
+  with parameters
+    signed int 
+  returning 
+    pointer to signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m12: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m12: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m12: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m12: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m12: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m13: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m13: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m13: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m13: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m13: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m14: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m14: pointer to function
+      with parameters
+        signed int 
+      returning 
+        pointer to signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m14: pointer to function
+      with parameters
+        signed int 
+      returning 
+        pointer to signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m14: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m14: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to function
+  with parameters
+    signed int 
+  returning 
+    pointer to signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to function
+    accepting unspecified arguments
+  returning 
+    signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to pointer to function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to pointer to function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to pointer to function
+  with parameters
+    signed int 
+  returning 
+    signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct S 
+(types:
+    lvalue instance of struct S 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct S 
+
+to:
+  instance of struct S 
+(types:
+    instance of struct S 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 5 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 5 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is __builtin_memcpy
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union U 
+(types:
+    lvalue instance of union U 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of union U 
+
+to:
+  instance of union U 
+(types:
+    instance of union U 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m1: signed int with bitfield width constant expression 3 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m1: signed int with bitfield width constant expression 3 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m2: signed int with bitfield width constant expression 4 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m2: signed int with bitfield width constant expression 4 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m4: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m4: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m5: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m5: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m6: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m6: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m7: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m7: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m8: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m8: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m9: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m9: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m10: pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m11: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m12: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m12: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m13: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m13: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m14: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Name: __builtin_memcpy
+
Index: src/Tests/Expect-r/Subrange.txt
===================================================================
--- src/Tests/Expect-r/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,846 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type subrange (not function type) 
+    _src: instance of type subrange (not function type) 
+  returning 
+    instance of type subrange (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+    to:
+      pointer to instance of type base_t (not function type) 
+    Cast of:
+      Variable Expression: _src: instance of type subrange (not function type) 
+
+    to:
+      instance of type base_t (not function type) 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type subrange (not function type) 
+      _src: instance of type subrange (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type subrange (not function type) 
+      _src: instance of type subrange (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type subrange (not function type) 
+          _src: instance of type subrange (not function type) 
+        returning 
+          instance of type subrange (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+(types:
+    lvalue pointer to instance of type subrange (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is low
+nameExpr is high
+nameExpr is lbound
+decl is lbound: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    v: instance of type subrange (not function type) 
+      with parameters
+        instance of type T (not function type) 
+                  Name: low
+
+                  Name: high
+
+
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Name: low
+
+
+
+newExpr is Variable Expression: lbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: lbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          v: instance of type subrange (not function type) 
+            with parameters
+              instance of type _0_T (not function type) 
+                              Name: low
+
+                              Name: high
+
+
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is day_of_month
+decl is day_of_month: instance of type subrange (not function type) 
+with parameters
+  unsigned int 
+      Name: 1
+
+  constant expression 31 signed int 
+
+newExpr is Variable Expression: day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+(types:
+    lvalue instance of type subrange (not function type) 
+      with parameters
+        unsigned int 
+                  Name: 1
+
+        constant expression 31 signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+(types:
+    lvalue instance of type subrange (not function type) 
+      with parameters
+        unsigned int 
+                  Name: 1
+
+        constant expression 31 signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: lbound: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              v: instance of type subrange (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+                                      Name: low
+
+                                      Name: high
+
+
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  v: instance of type subrange (not function type) 
+                    with parameters
+                      instance of type _0_T (not function type) 
+                                              Name: low
+
+                                              Name: high
+
+
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type subrange (not function type) 
+with parameters
+  instance of type _0_T (not function type) 
+      Name: low
+
+      Name: high
+
+
+actual type is lvalue instance of type subrange (not function type) 
+with parameters
+  unsigned int 
+      Name: 1
+
+  constant expression 31 signed int 
+
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type subrange (not function type) 
+    _src: instance of type subrange (not function type) 
+  returning 
+    instance of type subrange (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+    to:
+      pointer to instance of type base_t (not function type) 
+    Cast of:
+      Variable Expression: _src: instance of type subrange (not function type) 
+
+    to:
+      instance of type base_t (not function type) 
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type subrange (not function type) 
+    _src: instance of type subrange (not function type) 
+  returning 
+    instance of type subrange (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 21 ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type subrange (not function type) 
+    _src: instance of type subrange (not function type) 
+  returning 
+    instance of type subrange (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+    to:
+      pointer to instance of type base_t (not function type) 
+    Cast of:
+      Variable Expression: _src: instance of type subrange (not function type) 
+
+    to:
+      instance of type base_t (not function type) 
+
+
+
+inferRecursive: candidate is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 35 ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+actual expression:
+        Variable Expression: day_of_month: instance of type subrange (not function type) 
+          with parameters
+            unsigned int 
+                          Name: 1
+
+            constant expression 31 signed int 
+
+--- results are
+        lvalue instance of type subrange (not function type) 
+          with parameters
+            unsigned int 
+                          Name: 1
+
+            constant expression 31 signed int 
+
+
+converting lvalue instance of type subrange (not function type) 
+        with parameters
+          unsigned int 
+                      Name: 1
+
+          constant expression 31 signed int 
+
+ to instance of type subrange (not function type) 
+        with parameters
+          instance of type _0_T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+cost is( -1, -1, 0 )
+
+converting pointer to function
+          with parameters
+            _dst: pointer to instance of type subrange (not function type) 
+            _src: instance of type subrange (not function type) 
+          returning 
+            instance of type subrange (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        v: instance of type subrange (not function type) 
+          with parameters
+            instance of type _0_T (not function type) 
+                          Name: low
+
+                          Name: high
+
+
+actuals are:
+                  Cast of:
+            Variable Expression: day_of_month: instance of type subrange (not function type) 
+              with parameters
+                unsigned int 
+                                  Name: 1
+
+                constant expression 31 signed int 
+
+
+          to:
+            instance of type subrange (not function type) 
+              with parameters
+                instance of type _0_T (not function type) 
+                                  Name: low
+
+                                  Name: high
+
+
+
+bindings are:
+        ( _0_T ) -> instance of type subrange (not function type)  (no widening)
+cost of conversion is:( -1, 2, 0 )
+actual expression:
+        Variable Expression: day_of_month: instance of type subrange (not function type) 
+          with parameters
+            unsigned int 
+                          Name: 1
+
+            constant expression 31 signed int 
+
+--- results are
+        lvalue instance of type subrange (not function type) 
+          with parameters
+            unsigned int 
+                          Name: 1
+
+            constant expression 31 signed int 
+
+
+converting lvalue instance of type subrange (not function type) 
+        with parameters
+          unsigned int 
+                      Name: 1
+
+          constant expression 31 signed int 
+
+ to instance of type subrange (not function type) 
+        with parameters
+          instance of type _0_T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+cost is( -1, -1, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        v: instance of type subrange (not function type) 
+          with parameters
+            instance of type _0_T (not function type) 
+                          Name: low
+
+                          Name: high
+
+
+actuals are:
+                  Cast of:
+            Variable Expression: day_of_month: instance of type subrange (not function type) 
+              with parameters
+                unsigned int 
+                                  Name: 1
+
+                constant expression 31 signed int 
+
+
+          to:
+            instance of type subrange (not function type) 
+              with parameters
+                instance of type _0_T (not function type) 
+                                  Name: low
+
+                                  Name: high
+
+
+
+bindings are:
+        ( _0_T ) -> instance of type T (not function type)  (no widening)
+cost of conversion is:( -1, 2, 0 )
+alternatives before prune:
+Cost ( -1, 2, 0 ): Application of
+  Variable Expression: lbound: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        v: instance of type subrange (not function type) 
+          with parameters
+            instance of type T (not function type) 
+                          Name: low
+
+                          Name: high
+
+
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Cast of:
+      Variable Expression: day_of_month: instance of type subrange (not function type) 
+        with parameters
+          unsigned int 
+                      Name: 1
+
+          constant expression 31 signed int 
+
+
+    to:
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type _0_T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      _dst: pointer to instance of type subrange (not function type) 
+      _src: instance of type subrange (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> instance of type subrange (not function type)  (no widening)
+
+
+Cost ( -1, 2, 0 ): Application of
+  Variable Expression: lbound: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        v: instance of type subrange (not function type) 
+          with parameters
+            instance of type T (not function type) 
+                          Name: low
+
+                          Name: high
+
+
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Cast of:
+      Variable Expression: day_of_month: instance of type subrange (not function type) 
+        with parameters
+          unsigned int 
+                      Name: 1
+
+          constant expression 31 signed int 
+
+
+    to:
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type _0_T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+
+with inferred parameters:
+  ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> instance of type T (not function type)  (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is ?!=?
+nameExpr is target
+decl is target: pointer to instance of type subrange (not function type) 
+with parameters
+  instance of type T (not function type) 
+      Name: low
+
+      Name: high
+
+
+newExpr is Variable Expression: target: pointer to instance of type subrange (not function type) 
+  with parameters
+    instance of type T (not function type) 
+          Name: low
+
+          Name: high
+
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: target: pointer to instance of type subrange (not function type) 
+  with parameters
+    instance of type T (not function type) 
+          Name: low
+
+          Name: high
+
+
+(types:
+    lvalue pointer to instance of type subrange (not function type) 
+      with parameters
+        instance of type T (not function type) 
+                  Name: low
+
+                  Name: high
+
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+nameExpr is target
+decl is target: pointer to instance of type subrange (not function type) 
+with parameters
+  instance of type T (not function type) 
+      Name: t_low
+
+      Name: t_high
+
+
+newExpr is Variable Expression: target: pointer to instance of type subrange (not function type) 
+  with parameters
+    instance of type T (not function type) 
+          Name: t_low
+
+          Name: t_high
+
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: target: pointer to instance of type subrange (not function type) 
+  with parameters
+    instance of type T (not function type) 
+          Name: t_low
+
+          Name: t_high
+
+
+(types:
+    lvalue pointer to instance of type subrange (not function type) 
+      with parameters
+        instance of type T (not function type) 
+                  Name: t_low
+
+                  Name: t_high
+
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+to:
+  pointer to instance of type base_t (not function type) 
+
+Error: No reasonable alternatives for expression Name: low
+
+Error: No reasonable alternatives for expression Name: high
+
+Error: No reasonable alternatives for expression Cast of:
+  Applying untyped: 
+      Name: lbound
+  ...to: 
+      Name: day_of_month
+
+to:
+  unsigned int 
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: target
+
+to:
+  instance of type subrange (not function type) 
+    with parameters
+      instance of type T (not function type) 
+              Name: low
+
+              Name: high
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: target
+
+to:
+  instance of type subrange (not function type) 
+    with parameters
+      instance of type T (not function type) 
+              Name: t_low
+
+              Name: t_high
+
+
+
Index: src/Tests/Expect-r/Switch.txt
===================================================================
--- src/Tests/Expect-r/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,142 @@
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is ?=?
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-r/Tuple.txt
===================================================================
--- src/Tests/Expect-r/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12836 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct inner 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct inner 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+(types:
+    instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct outer 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct outer 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of struct inner 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    lvalue instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of struct inner 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of struct inner 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to instance of struct inner 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of struct inner 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of struct inner 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue instance of struct inner 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to instance of struct inner 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to instance of struct inner 
+formal type is instance of struct inner 
+actual type is lvalue instance of struct inner 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            i: instance of struct inner 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct outer 
+--- results are
+        pointer to instance of struct inner 
+
+converting pointer to instance of struct inner 
+ to pointer to instance of struct inner 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          i: instance of struct inner 
+        from aggregate: 
+          Variable Expression: _src: instance of struct outer 
+--- results are
+        lvalue instance of struct inner 
+
+converting lvalue instance of struct inner 
+ to instance of struct inner 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct inner 
+        _src: instance of struct inner 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              i: instance of struct inner 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct outer 
+
+                  Member Expression, with field: 
+            i: instance of struct inner 
+          from aggregate: 
+            Variable Expression: _src: instance of struct outer 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct inner 
+        _src: instance of struct inner 
+      returning 
+        instance of struct inner 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        i: instance of struct inner 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+
+      Member Expression, with field: 
+      i: instance of struct inner 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+(types:
+    instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          i: instance of struct inner 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct outer 
+
+          Member Expression, with field: 
+        i: instance of struct inner 
+      from aggregate: 
+        Variable Expression: _src: instance of struct outer 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct outer 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f4: double 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f4: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f4: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f4: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f4: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to double 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to double 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+(types:
+    instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: x: short signed int 
+
+(types:
+    lvalue unsigned int 
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: x: short signed int 
+
+(types:
+    pointer to unsigned int 
+    pointer to short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: x: short signed int 
+
+(types:
+    pointer to unsigned int 
+    pointer to short signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+)
+Environment: 
+
+nameExpr is w
+decl is w: signed int 
+newExpr is Variable Expression: w: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: w: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: w: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 23 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 23 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: w: signed int 
+
+  constant expression 23 signed int 
+(types:
+    lvalue signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: w: signed int 
+
+  constant expression 23 signed int 
+(types:
+    lvalue signed int 
+    signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: short signed int 
+(types:
+    pointer to short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: short signed int 
+(types:
+    pointer to short signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: w: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: w: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to short signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to short signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+nameExpr is z
+decl is z: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: z: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: z: tuple of types
+          signed int 
+          signed int 
+
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: z: tuple of types
+          signed int 
+          signed int 
+
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is p
+decl is p: short signed int 
+newExpr is Variable Expression: p: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is f
+decl is f: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+nameExpr is z
+decl is z: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: z: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: z: tuple of types
+          signed int 
+          signed int 
+
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: z: tuple of types
+          signed int 
+          signed int 
+
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is p
+decl is p: short signed int 
+newExpr is Variable Expression: p: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is f
+decl is f: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is r
+decl is r: tuple of types
+  signed int 
+  char 
+  long signed int 
+  signed int 
+
+newExpr is Variable Expression: r: tuple of types
+    signed int 
+    char 
+    long signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: tuple of types
+    signed int 
+    char 
+    long signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue char 
+    lvalue long signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: r: tuple of types
+      signed int 
+      char 
+      long signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to char 
+    pointer to long signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: r: tuple of types
+      signed int 
+      char 
+      long signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to char 
+    pointer to long signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+nameExpr is z
+decl is z: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: z: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: z: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is 1
+nameExpr is f
+decl is f: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Tuple:
+          constant expression 3 signed int 
+          constant expression 5 signed int 
+--- results are
+        signed int 
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Tuple:
+            constant expression 3 signed int 
+            constant expression 5 signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Tuple:
+      constant expression 3 signed int 
+      constant expression 5 signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Tuple:
+        constant expression 3 signed int 
+        constant expression 5 signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Tuple:
+          constant expression 3 signed int 
+          constant expression 5 signed int 
+--- results are
+        signed int 
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+constant expression 3 signed int --- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Tuple:
+            constant expression 3 signed int 
+            constant expression 5 signed int 
+
+        constant expression 3 signed int 
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Tuple:
+      constant expression 3 signed int 
+      constant expression 5 signed int 
+
+  constant expression 3 signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Tuple:
+        constant expression 3 signed int 
+        constant expression 5 signed int 
+
+    constant expression 3 signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t1: const volatile tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: t1: const volatile tuple of types
+              signed int 
+              signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: t1: const volatile tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: t1: const volatile tuple of types
+          signed int 
+          signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t1: const volatile tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+constant expression 3 signed int --- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: t1: const volatile tuple of types
+              signed int 
+              signed int 
+
+
+        constant expression 3 signed int 
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: t1: const volatile tuple of types
+        signed int 
+        signed int 
+
+
+  constant expression 3 signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: t1: const volatile tuple of types
+          signed int 
+          signed int 
+
+
+    constant expression 3 signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Tuple:
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Tuple:
+    constant expression 3 signed int 
+    constant expression 5 signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: a: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: a: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4.6 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 4.6 double (types:
+    double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 4.6 double 
+(types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 4.6 double 
+(types:
+    double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: c: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: c: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+      Tuple:
+              Variable Expression: c: signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+          Tuple:
+                  Variable Expression: c: signed int 
+
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+          Tuple:
+                  Variable Expression: c: signed int 
+
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 2 signed int 
+      Tuple:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: signed int 
+
+
+(types:
+    signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 2 signed int 
+      Tuple:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: signed int 
+
+
+(types:
+    signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?!=?
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t2
+decl is t2: static const tuple of types
+  signed int 
+  const signed int 
+
+newExpr is Variable Expression: t2: static const tuple of types
+    signed int 
+    const signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t2: static const tuple of types
+    signed int 
+    const signed int 
+
+(types:
+    lvalue signed int 
+    const lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t2: static const tuple of types
+      signed int 
+      const signed int 
+
+(types:
+    pointer to signed int 
+    pointer to const signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t2: static const tuple of types
+      signed int 
+      const signed int 
+
+(types:
+    pointer to signed int 
+    pointer to const signed int 
+)
+Environment: 
+
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?+=?
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t2
+decl is t2: static const tuple of types
+  signed int 
+  const signed int 
+
+newExpr is Variable Expression: t2: static const tuple of types
+    signed int 
+    const signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t2: static const tuple of types
+    signed int 
+    const signed int 
+
+(types:
+    lvalue signed int 
+    const lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t2: static const tuple of types
+      signed int 
+      const signed int 
+
+(types:
+    pointer to signed int 
+    pointer to const signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t2: static const tuple of types
+      signed int 
+      const signed int 
+
+(types:
+    pointer to signed int 
+    pointer to const signed int 
+)
+Environment: 
+
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 4 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is s
+decl is s: instance of struct outer 
+newExpr is Variable Expression: s: instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: s: instance of struct outer 
+(types:
+    pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: s: instance of struct outer 
+(types:
+    pointer to instance of struct outer 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 11 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 11 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 12 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 12 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 13 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 13 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.14159 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3.14159 double (types:
+    double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 11 signed int 
+  constant expression 12 signed int 
+  constant expression 13 signed int 
+  constant expression 3.14159 double 
+(types:
+    signed int 
+    signed int 
+    signed int 
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 11 signed int 
+  constant expression 12 signed int 
+  constant expression 13 signed int 
+  constant expression 3.14159 double 
+(types:
+    signed int 
+    signed int 
+    signed int 
+    double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to instance of struct outer 
+formal type is instance of struct outer 
+actual type is signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to instance of struct outer 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is s
+decl is s: instance of struct outer 
+newExpr is Variable Expression: s: instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: s: instance of struct outer 
+(types:
+    pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: s: instance of struct outer 
+(types:
+    pointer to instance of struct outer 
+)
+Environment: 
+
+nameExpr is h
+decl is h: static function
+  with parameters
+    a: signed int 
+    b: signed int 
+    c: pointer to signed int 
+    d: pointer to char 
+  returning 
+    signed int 
+    pointer to signed int 
+    pointer to signed int 
+    signed int 
+
+newExpr is Variable Expression: h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          a: signed int 
+          b: signed int 
+          c: pointer to signed int 
+          d: pointer to char 
+        returning 
+          signed int 
+          pointer to signed int 
+          pointer to signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is h
+decl is h: static function
+  with parameters
+    a: signed int 
+    b: signed int 
+    c: pointer to signed int 
+    d: pointer to char 
+  returning 
+    signed int 
+    pointer to signed int 
+    pointer to signed int 
+    signed int 
+
+newExpr is Variable Expression: h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          a: signed int 
+          b: signed int 
+          c: pointer to signed int 
+          d: pointer to char 
+        returning 
+          signed int 
+          pointer to signed int 
+          pointer to signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is sp
+decl is sp: pointer to instance of struct outer 
+newExpr is Variable Expression: sp: pointer to instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    lvalue pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    pointer to pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    pointer to pointer to instance of struct outer 
+)
+Environment: 
+
+nameExpr is sp
+decl is sp: pointer to instance of struct outer 
+newExpr is Variable Expression: sp: pointer to instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    lvalue pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    lvalue pointer to instance of struct outer 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to pointer to instance of struct outer 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to pointer to instance of struct outer 
+nameExpr is printf
+decl is printf: function
+  with parameters
+    fmt: pointer to char 
+    and a variable number of other arguments
+  returning 
+    rc: signed int 
+
+newExpr is Variable Expression: printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      rc: signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      rc: signed int 
+
+(types:
+    pointer to function
+        with parameters
+          fmt: pointer to char 
+          and a variable number of other arguments
+        returning 
+          rc: signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+nameExpr is s
+decl is s: instance of struct outer 
+newExpr is Variable Expression: s: instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: printf: function
+            with parameters
+              fmt: pointer to char 
+              and a variable number of other arguments
+            returning 
+              rc: signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  fmt: pointer to char 
+                  and a variable number of other arguments
+                returning 
+                  rc: signed int 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int --- results are
+        pointer to char 
+
+converting pointer to char 
+ to pointer to char 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: s: instance of struct outer 
+--- results are
+        lvalue instance of struct outer 
+Case +++++++++++++
+formals are:
+        fmt: pointer to char 
+actuals are:
+        constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int 
+                  Variable Expression: s: instance of struct outer 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: printf: function
+      with parameters
+        fmt: pointer to char 
+        and a variable number of other arguments
+      returning 
+        rc: signed int 
+
+to arguments
+  constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int 
+      Variable Expression: s: instance of struct outer 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: printf: function
+        with parameters
+          fmt: pointer to char 
+          and a variable number of other arguments
+        returning 
+          rc: signed int 
+
+  to arguments
+    constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int 
+          Variable Expression: s: instance of struct outer 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is rc
+decl is rc: signed int 
+newExpr is Variable Expression: rc: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: rc: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: rc: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: rc: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is 0
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f4: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f4: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: x: short signed int 
+    Variable Expression: w: signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: r
+    Tuple:
+              Name: x
+
+              Name: y
+
+              Name: z
+
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: a: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+    Tuple:
+      constant expression 4.6 double 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: c: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+                  Tuple:
+                          Name: c
+
+
+    Tuple:
+      constant expression 2 signed int 
+              Tuple:
+                      Name: a
+
+                      Name: b
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: c
+
+                  Name: d
+
+    Name: t1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Address of:
+  Tuple:
+    constant expression 3 signed int 
+    constant expression 4 signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: s
+    Tuple:
+      constant expression 11 signed int 
+      constant expression 12 signed int 
+      constant expression 13 signed int 
+      constant expression 3.14159 double 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: sp
+    Name: sp
+
+Error: No reasonable alternatives for expression Name: 0
+
Index: src/Tests/Expect-r/TypeGenerator.txt
===================================================================
--- src/Tests/Expect-r/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3714 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    data: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    data: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of type List1 (not function type) 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    next: pointer to instance of type List1 (not function type) 
+    with parameters
+      instance of type T (not function type) 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    next: pointer to instance of type List1 (not function type) 
+    with parameters
+      instance of type T (not function type) 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of type List1 (not function type) 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of type List1 (not function type) 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to pointer to instance of type List1 (not function type) 
+with parameters
+  instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+(types:
+    lvalue pointer to instance of type List1 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S1 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S1 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct S1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct S1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct S1 
+(types:
+    lvalue instance of struct S1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+(types:
+    instance of struct S1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S2 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S2 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S2 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct S2 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct S2 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S2 
+              _src: instance of struct S2 
+            returning 
+              instance of struct S2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S2 
+                  _src: instance of struct S2 
+                returning 
+                  instance of struct S2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S2 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct S2 
+(types:
+    lvalue instance of struct S2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+(types:
+    instance of struct S2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S2 
+              _src: instance of struct S2 
+            returning 
+              instance of struct S2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S2 
+                  _src: instance of struct S2 
+                returning 
+                  instance of struct S2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S2 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+(types:
+    instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct node 
+    _src: instance of struct node 
+  returning 
+    instance of struct node 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of struct node 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                next: pointer to instance of struct node 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct node 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct node 
+          _src: instance of struct node 
+        returning 
+          instance of struct node 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    data: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    data: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct node 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct node 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct node 
+              _src: instance of struct node 
+            returning 
+              instance of struct node 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct node 
+                  _src: instance of struct node 
+                returning 
+                  instance of struct node 
+
+)
+        Environment: 
+formal type is pointer to instance of struct node 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S2 
+              _src: instance of struct S2 
+            returning 
+              instance of struct S2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S2 
+                  _src: instance of struct S2 
+                returning 
+                  instance of struct S2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S2 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct node 
+    _src: instance of struct node 
+  returning 
+    instance of struct node 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of struct node 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                next: pointer to instance of struct node 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct node 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct node 
+          _src: instance of struct node 
+        returning 
+          instance of struct node 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    lvalue pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    next: pointer to instance of struct node 
+    with parameters
+      instance of type T (not function type) 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    pointer to pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    next: pointer to instance of struct node 
+    with parameters
+      instance of type T (not function type) 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    pointer to pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct node 
+(types:
+    lvalue pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct node 
+(types:
+    lvalue pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct node 
+              _src: instance of struct node 
+            returning 
+              instance of struct node 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct node 
+                  _src: instance of struct node 
+                returning 
+                  instance of struct node 
+
+)
+        Environment: 
+formal type is pointer to instance of struct node 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S2 
+              _src: instance of struct S2 
+            returning 
+              instance of struct S2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S2 
+                  _src: instance of struct S2 
+                returning 
+                  instance of struct S2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S2 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct node 
+(types:
+    lvalue instance of struct node 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct node 
+
+to:
+  instance of struct node 
+(types:
+    instance of struct node 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct node 
+    _src: instance of struct node 
+  returning 
+    instance of struct node 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of struct node 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                next: pointer to instance of struct node 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct node 
+
+to:
+  instance of struct node 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List (not function type) 
+    _src: instance of type List (not function type) 
+  returning 
+    instance of type List (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List (not function type) 
+
+    to:
+      pointer to pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+    Cast of:
+      Variable Expression: _src: instance of type List (not function type) 
+
+    to:
+      pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List (not function type) 
+      _src: instance of type List (not function type) 
+    returning 
+      instance of type List (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct node 
+          _src: instance of struct node 
+        returning 
+          instance of struct node 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List (not function type) 
+      _src: instance of type List (not function type) 
+    returning 
+      instance of type List (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List (not function type) 
+          _src: instance of type List (not function type) 
+        returning 
+          instance of type List (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type List (not function type) 
+(types:
+    lvalue pointer to instance of type List (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is my_list
+decl is my_list: instance of type List (not function type) 
+with parameters
+  signed int 
+
+newExpr is Variable Expression: my_list: instance of type List (not function type) 
+  with parameters
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: my_list: instance of type List (not function type) 
+  with parameters
+    signed int 
+
+(types:
+    lvalue instance of type List (not function type) 
+      with parameters
+        signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      next: pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+to:
+  pointer to pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S2 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      next: pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type List (not function type) 
+
+to:
+  pointer to pointer to instance of struct node 
+    with parameters
+      instance of type T (not function type) 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: my_list
+
+to:
+  instance of struct node 
+    with parameters
+      signed int 
+
+
Index: src/Tests/Expect-r/Typedef.txt
===================================================================
--- src/Tests/Expect-r/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,424 @@
+nameExpr is T
+decl is T: function
+  with parameters
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: T: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: T: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: T: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+constant expression 3 signed int --- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+        constant expression 3 signed int 
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: T: function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+  constant expression 3 signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: T: function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+    constant expression 3 signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous0 
+
Index: src/Tests/Expect-r/TypedefDeclarator.txt
===================================================================
--- src/Tests/Expect-r/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,583 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int main(){
+    int __f1__i;
+    int __f2__i;
+    int *__f3__Pi;
+    int **__f4__PPi;
+    int *const *__f5__PCPi;
+    int *const *const __f6__CPCPi;
+    int *__f7__Pi;
+    int **__f8__PPi;
+    int *const *__f9__PCPi;
+    int *const *const __f10__CPCPi;
+    int *__f11__Pi;
+    int **__f12__PPi;
+    int *const *__f13__PCPi;
+    int *const *const __f14__CPCPi;
+    int __f15__A0i[];
+    int __f16__A0i[((long unsigned int )10)];
+    int __f17__A0i[];
+    int __f18__A0i[((long unsigned int )10)];
+    int *__f19__A0Pi[];
+    int *__f20__A0Pi[((long unsigned int )10)];
+    int **__f21__A0PPi[];
+    int **__f22__A0PPi[((long unsigned int )10)];
+    int *const *__f23__A0PCPi[];
+    int *const *__f24__A0PCPi[((long unsigned int )10)];
+    int *const *const __f25__A0CPCPi[];
+    int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+    int *__f27__A0Pi[];
+    int *__f28__A0Pi[((long unsigned int )10)];
+    int **__f29__A0PPi[];
+    int **__f30__A0PPi[((long unsigned int )10)];
+    int *const *__f31__A0PCPi[];
+    int *const *__f32__A0PCPi[((long unsigned int )10)];
+    int *const *const __f33__A0CPCPi[];
+    int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+    int *__f35__A0Pi[];
+    int *__f36__A0Pi[((long unsigned int )10)];
+    int **__f37__A0PPi[];
+    int **__f38__A0PPi[((long unsigned int )10)];
+    int *const *__f39__A0PCPi[];
+    int *const *__f40__A0PCPi[((long unsigned int )10)];
+    int *const *const __f41__A0CPCPi[];
+    int *const *const __f42__A0CPCPi[((long unsigned int )10)];
+    int __f43__A0A0i[][3];
+    int __f44__A0A0i[((long unsigned int )3)][3];
+    int __f45__A0A0i[][3];
+    int __f46__A0A0i[((long unsigned int )3)][3];
+    int __f47__A0A0i[][3];
+    int __f48__A0A0i[((long unsigned int )3)][3];
+    int *__f49__A0A0Pi[][3];
+    int *__f50__A0A0Pi[((long unsigned int )3)][3];
+    int **__f51__A0A0PPi[][3];
+    int **__f52__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f53__A0A0PCPi[][3];
+    int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f55__A0A0CPCPi[][3];
+    int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+    int *__f57__A0A0Pi[][3];
+    int *__f58__A0A0Pi[((long unsigned int )3)][3];
+    int **__f59__A0A0PPi[][3];
+    int **__f60__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f61__A0A0PCPi[][3];
+    int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f63__A0A0CPCPi[][3];
+    int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+    int __f65__Fi_i_(int );
+    int __f66__Fi_i_(int );
+    int *__f67__FPi_i_(int );
+    int **__f68__FPPi_i_(int );
+    int *const *__f69__FPCPi_i_(int );
+    int *const *const __f70__FCPCPi_i_(int );
+    int *__f71__FPi_i_(int );
+    int **__f72__FPPi_i_(int );
+    int *const *__f73__FPCPi_i_(int );
+    int *const *const __f74__FCPCPi_i_(int );
+    int (*__f75__PFi_i_)(int );
+    int (**__f76__PPFi_i_)(int );
+    int (*const *__f77__PCPFi_i_)(int );
+    int (*const *const __f78__CPCPFi_i_)(int );
+    int (*(*__f79__PFPFi___i_)(int ))();
+    int (*(*const __f80__CPFPFi___i_)(int ))();
+    int (*const (*const __f81__CPFCPFi___i_)(int ))();
+}
Index: src/Tests/Expect-r/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Expect-r/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+int __fred__Fi_iPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPA0iPA0iPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPFi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFi_i_PPFi_i_PCPFi_i_CPCPFi_i_PFPFi___i_CPFPFi___i_CPFCPFi___i_CPiCPiPiCPiPFi_CPi_PFi_CPi_PFi_Pi_PFi_CPi_CPPiCPPiPPPiCPPCPiCPCPCPiPFPi_CPi_PFPi_CPi_PFPPi_Pi_PFPCPi_CPi_PFCPCPi_CPi_CPA0iCPA0iPA0iCPA0iPFi_CPA0i_PFi_CPA0i_PFi_PA0i_PFi_CPA0i_CPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPiPFPi_CPA0i_PFPi_CPA0i_PFPPi_PA0i_PFPCPi_CPA0i_PFCPCPi_CPA0i__(int __f1__i, int *__f3__Pi, int **__f4__PPi, int *const *__f5__PCPi, int *const *const __f6__CPCPi, int *__f11__Pi, int **__f12__PPi, int *const *__f13__PCPi, int *const *const __f14__CPCPi, int *__f15__Pi, int __f16__Pi[10], int **__f19__PPi, int *__f20__PPi[10], int ***__f21__PPPi, int **__f22__PPPi[10], int *const **__f23__PPCPi, int *const *__f24__PPCPi[10], int *const *const *__f25__PCPCPi, int *const *const __f26__PCPCPi[10], int **__f35__PPi, int *__f36__PPi[10], int ***__f37__PPPi, int **__f38__PPPi[10], int *const **__f39__PPCPi, int *const *__f40__PPCPi[10], int *const *const *__f41__PCPCPi, int *const *const __f42__PCPCPi[10], int (*__f43__PA0i)[3], int __f44__PA0i[3][3], int *(*__f49__PA0Pi)[3], int *__f50__PA0Pi[3][3], int **(*__f51__PA0PPi)[3], int **__f52__PA0PPi[3][3], int *const *(*__f53__PA0PCPi)[3], int *const *__f54__PA0PCPi[3][3], int *const *const (*__f55__PA0CPCPi)[3], int *const *const __f56__PA0CPCPi[3][3], int *(*__f57__PA0Pi)[3], int *__f58__PA0Pi[3][3], int **(*__f59__PA0PPi)[3], int **__f60__PA0PPi[3][3], int *const *(*__f61__PA0PCPi)[3], int *const *__f62__PA0PCPi[3][3], int *const *const (*__f63__PA0CPCPi)[3], int *const *const __f64__PA0CPCPi[3][3], int (*__f65__PFi_i_)(int ), int *(*__f67__PFPi_i_)(int ), int **(*__f68__PFPPi_i_)(int ), int *const *(*__f69__PFPCPi_i_)(int ), int *const *const (*__f70__PFCPCPi_i_)(int ), int (*__f75__PFi_i_)(int ), int (**__f76__PPFi_i_)(int ), int (*const *__f77__PCPFi_i_)(int ), int (*const *const __f78__CPCPFi_i_)(int ), int (*(*__f79__PFPFi___i_)(int ))(), int (*(*const __f80__CPFPFi___i_)(int ))(), int (*const (*const __f81__CPFCPFi___i_)(int ))(), int __f82__CPi[const *], int __f83__CPi[const 3], int __f84__Pi[static 3], int __f85__CPi[static const 3], int (*)(int [const *]), int (*)(int [const 3]), int (*)(int [static 3]), int (*)(int [static const 3]), int *__f90__CPPi[const *], int *__f91__CPPi[const 3], int **__f92__PPPi[static 3], int *const *__f93__CPPCPi[static const 3], int *const *const __f94__CPCPCPi[static const 3], int *(*)(int [const *]), int *(*)(int [const 3]), int **(*)(int [static 3]), int *const *(*)(int [static const 3]), int *const *const (*)(int [static const 3]), int __f100__CPA0i[const *][3], int __f101__CPA0i[const 3][3], int __f102__PA0i[static 3][3], int __f103__CPA0i[static const 3][3], int (*)(int [const *][3]), int (*)(int [const 3][3]), int (*)(int [static 3][3]), int (*)(int [static const 3][3]), int *__f108__CPA0Pi[const *][3], int *__f109__CPA0Pi[const 3][3], int **__f110__PA0PPi[static 3][3], int *const *__f111__CPA0PCPi[static const 3][3], int *const *const __f112__CPA0CPCPi[static const 3][3], int *(*)(int [const *][3]), int *(*)(int [const 3][3]), int **(*)(int [static 3][3]), int *const *(*)(int [static const 3][3]), int *const *const (*)(int [static const 3][3])){
+}
Index: src/Tests/Expect-r/Typeof.txt
===================================================================
--- src/Tests/Expect-r/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,68 @@
+nameExpr is v1
+decl is v1: pointer to signed int 
+newExpr is Variable Expression: v1: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: v1: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: v1: pointer to signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is *?
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 4 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 4 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Name: *?
+
Index: src/Tests/Expect-r/VariableDeclarator.txt
===================================================================
--- src/Tests/Expect-r/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,740 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __f1__i;
+int __f2__i;
+int *__f3__Pi;
+int **__f4__PPi;
+int *const *__f5__PCPi;
+int *const *const __f6__CPCPi;
+int *__f7__Pi;
+int **__f8__PPi;
+int *const *__f9__PCPi;
+int *const *const __f10__CPCPi;
+int *__f11__Pi;
+int **__f12__PPi;
+int *const *__f13__PCPi;
+int *const *const __f14__CPCPi;
+int __f15__A0i[];
+int __f16__A0i[((long unsigned int )10)];
+int __f17__A0i[];
+int __f18__A0i[((long unsigned int )10)];
+int *__f19__A0Pi[];
+int *__f20__A0Pi[((long unsigned int )10)];
+int **__f21__A0PPi[];
+int **__f22__A0PPi[((long unsigned int )10)];
+int *const *__f23__A0PCPi[];
+int *const *__f24__A0PCPi[((long unsigned int )10)];
+int *const *const __f25__A0CPCPi[];
+int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+int *__f27__A0Pi[];
+int *__f28__A0Pi[((long unsigned int )10)];
+int **__f29__A0PPi[];
+int **__f30__A0PPi[((long unsigned int )10)];
+int *const *__f31__A0PCPi[];
+int *const *__f32__A0PCPi[((long unsigned int )10)];
+int *const *const __f33__A0CPCPi[];
+int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+int (*__f35__PA0i)[];
+int (*__f36__PA0i)[10];
+int (**__f37__PPA0i)[];
+int (**__f38__PPA0i)[10];
+int (*const *__f39__PCPA0i)[];
+int (*const *__f40__PCPA0i)[10];
+int (*const *const __f41__CPCPA0i)[];
+int (*const *const __f42__CPCPA0i)[10];
+int __f43__A0A0i[][3];
+int __f44__A0A0i[((long unsigned int )3)][3];
+int __f45__A0A0i[][3];
+int __f46__A0A0i[((long unsigned int )3)][3];
+int __f47__A0A0i[][3];
+int __f48__A0A0i[((long unsigned int )3)][3];
+int *__f49__A0A0Pi[][3];
+int *__f50__A0A0Pi[((long unsigned int )3)][3];
+int **__f51__A0A0PPi[][3];
+int **__f52__A0A0PPi[((long unsigned int )3)][3];
+int *const *__f53__A0A0PCPi[][3];
+int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __f55__A0A0CPCPi[][3];
+int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+int *__f57__A0A0Pi[][3];
+int *__f58__A0A0Pi[((long unsigned int )3)][3];
+int **__f59__A0A0PPi[][3];
+int **__f60__A0A0PPi[((long unsigned int )3)][3];
+int *const *__f61__A0A0PCPi[][3];
+int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __f63__A0A0CPCPi[][3];
+int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+int __f65__Fi_i_(int );
+int __f66__Fi_i_(int );
+int *__f67__FPi_i_(int );
+int **__f68__FPPi_i_(int );
+int *const *__f69__FPCPi_i_(int );
+int *const *const __f70__FCPCPi_i_(int );
+int *__f71__FPi_i_(int );
+int **__f72__FPPi_i_(int );
+int *const *__f73__FPCPi_i_(int );
+int *const *const __f74__FCPCPi_i_(int );
+int (*__f75__PFi_i_)(int );
+int (**__f76__PPFi_i_)(int );
+int (*const *__f77__PCPFi_i_)(int );
+int (*const *const __f78__CPCPFi_i_)(int );
+int (*(*__f79__PFPFi___i_)(int ))();
+int (*(*const __f80__CPFPFi___i_)(int ))();
+int (*const (*const __f81__CPFCPFi___i_)(int ))();
+int *__cf3__Pi;
+int **__cf4__PPi;
+int *const *__cf5__PCPi;
+int *const *const __cf6__CPCPi;
+int __cf15__A0i[];
+int __cf16__A0i[((long unsigned int )10)];
+int *__cf19__A0Pi[];
+int *__cf20__A0Pi[((long unsigned int )10)];
+int **__cf21__A0PPi[];
+int **__cf22__A0PPi[((long unsigned int )10)];
+int *const *__cf23__A0PCPi[];
+int *const *__cf24__A0PCPi[((long unsigned int )10)];
+int *const *const __cf25__A0CPCPi[];
+int *const *const __cf26__A0CPCPi[((long unsigned int )10)];
+int (*__cf35__PA0i)[];
+int (*__cf36__PA0i)[10];
+int (**__cf37__PPA0i)[];
+int (**__cf38__PPA0i)[10];
+int (*const *__cf39__PCPA0i)[];
+int (*const *__cf40__PCPA0i)[10];
+int (*const *const __cf41__CPCPA0i)[];
+int (*const *const __cf42__CPCPA0i)[10];
+int __cf43__A0A0i[][3];
+int __cf44__A0A0i[((long unsigned int )3)][3];
+int *__cf49__A0A0Pi[][3];
+int *__cf50__A0A0Pi[((long unsigned int )3)][3];
+int **__cf51__A0A0PPi[][3];
+int **__cf52__A0A0PPi[((long unsigned int )3)][3];
+int *const __cf53__A0A0CPi[][3];
+int *const *__cf54__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __cf55__A0A0CPCPi[][3];
+int *const *const __cf56__A0A0CPCPi[((long unsigned int )3)][3];
+int __cf65__Fi_i_(int );
+int __cf66__Fi_i_(int );
+int *__cf67__FPi_i_(int );
+int **__cf68__FPPi_i_(int );
+int **const __cf69__FCPPi_i_(int );
+int *const *const __cf70__FCPCPi_i_(int );
+int (*(*(*(*(*__v3__PA0PA0PFPA0PA0i_PA0PA0iPA0PA0i_)[])[])(int (*(*)[])[], int (*(*)[])[]))[])[];
Index: src/Tests/Expect-r/gcc900407-1.txt
===================================================================
--- src/Tests/Expect-r/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+nameExpr is ?=?
+nameExpr is ?=?
+nameExpr is ?!=?
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-r/gcc900516-1.txt
===================================================================
--- src/Tests/Expect-r/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3 @@
+nameExpr is !?
+Error: No reasonable alternatives for expression Name: !?
+
Index: src/Tests/Expect-r/gcc920301-1.txt
===================================================================
--- src/Tests/Expect-r/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 5 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __f__Fi__(){
+    static void *__t__A0Pv[];
+    __L1__: /* null statement */ ;
+
+}
+int __g__Fi__(){
+    static unsigned int __p__A0Ui[((long unsigned int )5)];
+}
Index: src/Tests/Expect-r/gcc920409-1.txt
===================================================================
--- src/Tests/Expect-r/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3 @@
+nameExpr is ?!=?
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Expect-r/gcc920409-2.txt
===================================================================
--- src/Tests/Expect-r/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+nameExpr is ?!=?
+nameExpr is ?=?
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-r/gcc920410-2.txt
===================================================================
--- src/Tests/Expect-r/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3 @@
+nameExpr is ?!=?
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Expect-r/gcc920501-1.txt
===================================================================
--- src/Tests/Expect-r/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): Applying untyped: 
+    Name: LabAddress
+...to: 
+    Name: c
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Segmentation fault (core dumped)
Index: src/Tests/Expect-r/gcc920501-11.txt
===================================================================
--- src/Tests/Expect-r/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Expect-r/gcc920501-19.txt
===================================================================
--- src/Tests/Expect-r/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+nameExpr is 0
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Expect-r/report
===================================================================
--- src/Tests/Expect-r/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-r/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Expect-s/Abstype.txt
===================================================================
--- src/Tests/Expect-s/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,52 @@
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function x
+--- Entering scope
+--- Leaving scope containing
+Adding function y
+--- Entering scope
+Adding object t
+--- Entering scope
+Adding object t_instance
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function *?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function ?++
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type DT
+--- Leaving scope containing
+DT
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function x
+--- Entering scope
+Adding object u
+--- Entering scope
+Adding object u_instance
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function break_abstraction
+--- Entering scope
+Adding object u
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Array.txt
===================================================================
--- src/Tests/Expect-s/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,38 @@
+Adding object a1
+Adding object a2
+Adding object a4
+Adding object m1
+Adding object m2
+Adding object m4
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding object a1
+Adding object a2
+Adding object a4
+Adding object T
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function mary
+--- Entering scope
+Adding object T
+Adding object p1
+Adding object p2
+Adding object p3
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function tom
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function jane
+--- Entering scope
+Adding object T
+Adding object p1
+Adding object p2
+Adding object p3
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/AsmName.txt
===================================================================
--- src/Tests/Expect-s/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+Adding object x
+Adding function fred
+--- Entering scope
+Adding object x
+--- Entering scope
+Adding object y
+Adding object z
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Attributes.txt
===================================================================
--- src/Tests/Expect-s/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Expect-s/Cast.txt
===================================================================
--- src/Tests/Expect-s/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+Adding object f
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object f
+Adding object f
+Adding object f
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/CastError.txt
===================================================================
--- src/Tests/Expect-s/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Adding object f
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object f
+Adding object f
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/CharStringConstants.txt
===================================================================
--- src/Tests/Expect-s/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/CommentMisc.txt
===================================================================
--- src/Tests/Expect-s/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,10 @@
+Adding object i
+Adding object i
+Adding object i
+Adding object i
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Constant0-1.txt
===================================================================
--- src/Tests/Expect-s/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,107 @@
+Adding object 0
+Adding object 0
+Adding object 0
+Adding object 1
+Adding object 1
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding fwd decl for struct __anonymous1
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous1
+--- Entering scope
+--- Leaving scope containing
+Adding object 1
+Adding fwd decl for struct __anonymous2
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous2
+--- Entering scope
+--- Leaving scope containing
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding fwd decl for struct __anonymous3
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous3
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding object x
+Adding object 0
+Adding object x
+Adding object 0
+Adding object x
+Adding object 0
+Adding fwd decl for struct __anonymous4
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous4
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding fwd decl for struct __anonymous5
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous5
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding fwd decl for struct __anonymous6
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous6
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding object x
+Adding object 0
+Adding object x
+Adding object 0
+Adding object x
+Adding object 0
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object 1
+Adding object 0
+Adding object x
+Adding object 0
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Context.txt
===================================================================
--- src/Tests/Expect-s/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,45 @@
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function q
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding context has_q
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type z
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function r
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding context has_r
+--- Entering scope
+--- Leaving scope containing
+Adding type x
+--- Entering scope
+--- Leaving scope containing
+Adding type y
+--- Leaving scope containing
+x
+y
+has_r
+--- Leaving scope containing
+z
Index: src/Tests/Expect-s/DeclarationErrors.txt
===================================================================
--- src/Tests/Expect-s/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-s/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Expect-s/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-s/Enum.txt
===================================================================
--- src/Tests/Expect-s/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,20 @@
+Adding enum Colors
+Adding object Red
+Adding object Yellow
+Adding object Pink
+Adding object Blue
+Adding object Purple
+Adding object Orange
+Adding object Green
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding enum Fruits
+Adding object Apple
+Adding object Banana
+Adding object Pear
+Adding object Mango
+Adding object fruit
+--- Leaving scope containing
+Fruits
+--- Leaving scope containing
Index: src/Tests/Expect-s/Exception.txt
===================================================================
--- src/Tests/Expect-s/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding struct __anonymous1 from implicit forward declaration
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding struct __anonymous2 from implicit forward declaration
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding struct __anonymous3 from implicit forward declaration
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding struct __anonymous4 from implicit forward declaration
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+__anonymous0
+__anonymous1
+__anonymous2
+__anonymous3
+__anonymous4
+--- Leaving scope containing
Index: src/Tests/Expect-s/Expression.txt
===================================================================
--- src/Tests/Expect-s/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15 @@
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding fwd decl for struct s
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct s
+--- Entering scope
+--- Leaving scope containing
+Adding object p
+Adding object i
+--- Leaving scope containing
+s
+--- Leaving scope containing
Index: src/Tests/Expect-s/Forall.txt
===================================================================
--- src/Tests/Expect-s/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,235 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function g1
+--- Entering scope
+--- Entering scope
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function h
+--- Entering scope
+Adding object p
+--- Leaving scope containing
+Adding object x
+Adding object y
+Adding object z
+Adding object w
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g2
+--- Entering scope
+--- Entering scope
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding object x
+Adding object y
+Adding object z
+Adding object w
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function swap
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object left
+Adding object right
+--- Entering scope
+Adding object temp
+--- Leaving scope containing
+--- Leaving scope containing
+T
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object 0
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?++
+--- Entering scope
+--- Leaving scope containing
+Adding function ?+=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding context sumable
+--- Entering scope
+--- Leaving scope containing
+Adding type T1
+Adding object 0
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?++
+--- Entering scope
+--- Leaving scope containing
+Adding function ?+=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type P1
+--- Entering scope
+--- Leaving scope containing
+Adding type P2
+--- Leaving scope containing
+P1
+P2
+Adding type T2
+--- Entering scope
+--- Leaving scope containing
+Adding type T3
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object i
+Adding object j
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type P1
+--- Entering scope
+--- Leaving scope containing
+Adding type P2
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+P1
+P2
+Adding type T2
+Adding object w1
+Adding object g2
+--- Entering scope
+--- Leaving scope containing
+Adding type w3
+Adding object g3
+Adding function sum
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object n
+Adding object a
+--- Entering scope
+Adding object total
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function twice
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?++
+--- Entering scope
+--- Leaving scope containing
+Adding function ?+=?
+--- Entering scope
+--- Leaving scope containing
+Adding object t
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function min
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding function ?!=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?<?
+--- Entering scope
+--- Leaving scope containing
+Adding object t1
+Adding object t2
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object x
+Adding object y
+Adding object a
+Adding object f
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Function.txt
===================================================================
--- src/Tests/Expect-s/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,29 @@
+Adding object a
+Adding object a
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding object p
+Adding object p
+Adding object p
+Adding object p
+Adding object q
+Adding object q
+Adding object q
+Adding object q
+Adding function r
+--- Entering scope
+--- Leaving scope containing
+Adding function s
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Functions.txt
===================================================================
--- src/Tests/Expect-s/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,374 @@
+Adding function h
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object g
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f2
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f3
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f4
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f5
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f6
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f7
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f8
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f9
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f10
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f11
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f12
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII1
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII2
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII3
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII4
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII5
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII6
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII7
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII8
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII9
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO1
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO2
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO3
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO4
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO5
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+Adding object x
+Adding object y
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f11
+--- Entering scope
+--- Leaving scope containing
+Adding function f12
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object p
+--- Entering scope
+Adding object p
+Adding object p
+Adding object p
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f2
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f3
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f4
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f5
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object f
+Adding object t
+--- Entering scope
+Adding object T
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/GccExtensions.txt
===================================================================
--- src/Tests/Expect-s/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,70 @@
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding object c1
+Adding object c2
+Adding object i1
+Adding object i2
+Adding object i3
+Adding object ex
+Adding function f1
+--- Entering scope
+--- Leaving scope containing
+Adding function f2
+--- Entering scope
+--- Leaving scope containing
+Adding object s1
+Adding object s2
+Adding object t1
+Adding object t2
+Adding object v1
+Adding object v2
+Adding object a1
+Adding object a2
+Adding object a3
+Adding object a4
+Adding object a5
+Adding object a6
+Adding object a7
+Adding object p1
+Adding object p2
+Adding fwd decl for struct s1
+--- Entering scope
+--- Leaving scope containing
+Adding struct s1
+Adding fwd decl for struct s2
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct s2
+Adding fwd decl for struct s3
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct s3
+--- Entering scope
+--- Leaving scope containing
+Adding object x1
+--- Entering scope
+--- Leaving scope containing
+Adding object y1
+Adding fwd decl for struct s4
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct s4
+--- Entering scope
+--- Leaving scope containing
+Adding object x2
+--- Entering scope
+--- Leaving scope containing
+Adding object y2
+Adding object m1
+Adding object m2
+Adding object m3
+--- Leaving scope containing
+s1
+s2
+s3
+s4
+--- Leaving scope containing
Index: src/Tests/Expect-s/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Expect-s/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,106 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object f1
+Adding object f2
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f7
+Adding object f8
+Adding object f9
+Adding object f10
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f17
+Adding object f18
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f27
+Adding object f28
+Adding object f29
+Adding object f30
+Adding object f31
+Adding object f32
+Adding object f33
+Adding object f34
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f45
+Adding object f46
+Adding object f47
+Adding object f48
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding function f65
+--- Entering scope
+--- Leaving scope containing
+Adding function f66
+--- Entering scope
+--- Leaving scope containing
+Adding function f67
+--- Entering scope
+--- Leaving scope containing
+Adding function f68
+--- Entering scope
+--- Leaving scope containing
+Adding function f69
+--- Entering scope
+--- Leaving scope containing
+Adding function f70
+--- Entering scope
+--- Leaving scope containing
+Adding function f71
+--- Entering scope
+--- Leaving scope containing
+Adding function f72
+--- Entering scope
+--- Leaving scope containing
+Adding function f73
+--- Entering scope
+--- Leaving scope containing
+Adding function f74
+--- Entering scope
+--- Leaving scope containing
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Expect-s/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,122 @@
+Adding function fred
+--- Entering scope
+Adding object f1
+Adding object f2
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f7
+Adding object f8
+Adding object f9
+Adding object f10
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f17
+Adding object f18
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f27
+Adding object f28
+Adding object f29
+Adding object f30
+Adding object f31
+Adding object f32
+Adding object f33
+Adding object f34
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f45
+Adding object f46
+Adding object f47
+Adding object f48
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding object f65
+Adding object f66
+Adding object f67
+Adding object f68
+Adding object f69
+Adding object f70
+Adding object f71
+Adding object f72
+Adding object f73
+Adding object f74
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+Adding object f82
+Adding object f83
+Adding object f84
+Adding object f85
+Adding object f86
+Adding object f87
+Adding object f88
+Adding object f89
+Adding object f90
+Adding object f91
+Adding object f92
+Adding object f93
+Adding object f94
+Adding object f95
+Adding object f96
+Adding object f97
+Adding object f98
+Adding object f99
+Adding object f100
+Adding object f101
+Adding object f102
+Adding object f103
+Adding object f104
+Adding object f105
+Adding object f106
+Adding object f107
+Adding object f108
+Adding object f109
+Adding object f110
+Adding object f111
+Adding object f112
+Adding object f113
+Adding object f114
+Adding object f115
+Adding object f116
+Adding object f117
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/InferParam.txt
===================================================================
--- src/Tests/Expect-s/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,87 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function i
+--- Entering scope
+--- Leaving scope containing
+Adding function h
+--- Entering scope
+--- Entering scope
+Adding object a
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function j
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding context has_f_and_j
+Adding function j
+--- Entering scope
+--- Leaving scope containing
+Adding function k
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding function l
+--- Entering scope
+--- Entering scope
+Adding object b
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Initialization.txt
===================================================================
--- src/Tests/Expect-s/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,86 @@
+Adding object x11
+Adding object x12
+Adding object x21
+Adding object x22
+Adding object y1
+Adding object y2
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object w
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object a
+Adding fwd decl for struct __anonymous1
+--- Entering scope
+Adding object a
+Adding object b
+--- Leaving scope containing
+Adding struct __anonymous1
+--- Entering scope
+--- Leaving scope containing
+Adding object w
+Adding fwd decl for struct __anonymous2
+--- Entering scope
+Adding object g1
+Adding object g2
+Adding object g3
+--- Leaving scope containing
+Adding struct __anonymous2
+Adding fwd decl for struct __anonymous3
+--- Entering scope
+Adding object f1
+Adding object f2
+Adding object f3
+--- Entering scope
+--- Leaving scope containing
+Adding object f4
+--- Leaving scope containing
+Adding struct __anonymous3
+--- Entering scope
+--- Leaving scope containing
+Adding object v7
+Adding fwd decl for struct __anonymous4
+--- Entering scope
+Adding object y1
+Adding object y2
+Adding object y3
+--- Leaving scope containing
+Adding struct __anonymous4
+Adding fwd decl for struct point
+--- Entering scope
+Adding object x
+Adding object z
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+Adding object w
+--- Leaving scope containing
+Adding struct point
+Adding fwd decl for struct quintet
+--- Entering scope
+Adding object v
+Adding object w
+Adding object x
+Adding object y
+Adding object z
+--- Leaving scope containing
+Adding struct quintet
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding object p1
+--- Entering scope
+--- Leaving scope containing
+Adding object p2
+--- Entering scope
+--- Leaving scope containing
+Adding object p3
+--- Entering scope
+--- Leaving scope containing
+Adding object p4
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Initialization2.txt
===================================================================
--- src/Tests/Expect-s/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,114 @@
+Adding object a
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object z
+Adding fwd decl for struct __anonymous1
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous1
+--- Entering scope
+--- Leaving scope containing
+Adding object z1
+Adding fwd decl for struct __anonymous2
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous2
+--- Entering scope
+--- Leaving scope containing
+Adding object z2
+Adding fwd decl for struct __anonymous3
+--- Entering scope
+Adding object y1
+Adding object y2
+--- Leaving scope containing
+Adding struct __anonymous3
+Adding fwd decl for struct __anonymous4
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous4
+--- Entering scope
+--- Leaving scope containing
+Adding object z3
+Adding fwd decl for struct __anonymous5
+--- Entering scope
+Adding object y1
+Adding object y2
+--- Leaving scope containing
+Adding struct __anonymous5
+Adding fwd decl for struct __anonymous6
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous6
+--- Entering scope
+--- Leaving scope containing
+Adding object z3
+Adding fwd decl for struct __anonymous7
+--- Entering scope
+Adding object y1
+Adding object y2
+--- Leaving scope containing
+Adding struct __anonymous7
+Adding fwd decl for struct __anonymous8
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous8
+--- Entering scope
+--- Leaving scope containing
+Adding object z3
+Adding fwd decl for struct __anonymous9
+--- Entering scope
+Adding object y1
+Adding object y2
+--- Leaving scope containing
+Adding struct __anonymous9
+Adding fwd decl for struct __anonymous10
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous10
+--- Entering scope
+--- Leaving scope containing
+Adding object z3
+Adding fwd decl for struct t
+--- Entering scope
+Adding object a
+Adding object b
+--- Leaving scope containing
+Adding struct t
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+Adding fwd decl for struct __anonymous11
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous11
+--- Entering scope
+--- Leaving scope containing
+Adding object z6
Index: src/Tests/Expect-s/LabelledExit.txt
===================================================================
--- src/Tests/Expect-s/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,70 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object i
+Adding object x
+Adding object y
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+Adding object array
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Members.txt
===================================================================
--- src/Tests/Expect-s/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,103 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type DT
+--- Leaving scope containing
+DT
+Adding function *?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function __builtin_memcpy
+--- Entering scope
+--- Leaving scope containing
+Adding function a
+--- Entering scope
+--- Leaving scope containing
+Adding function b
+--- Entering scope
+--- Leaving scope containing
+Adding function c
+--- Entering scope
+--- Leaving scope containing
+Adding function d
+--- Entering scope
+--- Leaving scope containing
+Adding fwd decl for struct a_struct
+--- Entering scope
+Adding object a
+Adding object a
+Adding object a
+--- Leaving scope containing
+Adding struct a_struct
+Adding fwd decl for union b_struct
+--- Entering scope
+Adding object a
+Adding object a
+Adding object a
+--- Leaving scope containing
+Adding union b_struct
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding object the_struct
+--- Entering scope
+--- Leaving scope containing
+Adding object the_struct
+--- Leaving scope containing
+--- Leaving scope containing
+Adding fwd decl for struct c_struct
+--- Entering scope
+--- Leaving scope containing
+Adding struct c_struct
+Adding fwd decl for union d_struct
+--- Entering scope
+--- Leaving scope containing
+Adding union d_struct
+Adding function g
+--- Entering scope
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Leaving scope containing
+--- Leaving scope containing
+Adding fwd decl for struct forward
+--- Entering scope
+--- Leaving scope containing
+Adding struct forward
+--- Entering scope
+--- Leaving scope containing
+Adding object q
+Adding fwd decl for struct forward
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+Adding struct forward
+Adding function h
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Misc.txt
===================================================================
--- src/Tests/Expect-s/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Adding object a
+Adding object b
+Adding object b
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/MiscError.txt
===================================================================
--- src/Tests/Expect-s/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,11 @@
+Adding object a
+Adding object b
+Adding object b
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/NamedParmArg.txt
===================================================================
--- src/Tests/Expect-s/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,19 @@
+Adding function f1
+--- Entering scope
+Adding object i
+Adding object j
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f2
+--- Entering scope
+Adding object i
+Adding object j
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/NumericConstants.txt
===================================================================
--- src/Tests/Expect-s/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/OccursError.txt
===================================================================
--- src/Tests/Expect-s/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,25 @@
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+U
+Adding function test
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Operators.txt
===================================================================
--- src/Tests/Expect-s/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,39 @@
+Adding function ?*?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?()
+--- Entering scope
+Adding object number1
+Adding object number2
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding fwd decl for struct accumulator
+--- Entering scope
+Adding object total
+--- Leaving scope containing
+Adding struct accumulator
+Adding function ?()
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding object a
+Adding object number1
+Adding object number2
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object a
+Adding object b
+--- Entering scope
+--- Leaving scope containing
+Adding object ?+?
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Quad.txt
===================================================================
--- src/Tests/Expect-s/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,43 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?*?
+--- Entering scope
+--- Leaving scope containing
+Adding function square
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?*?
+--- Entering scope
+--- Leaving scope containing
+Adding object t
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function quad
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function square
+--- Entering scope
+--- Leaving scope containing
+Adding object u
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+U
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Rank2.txt
===================================================================
--- src/Tests/Expect-s/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,61 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type DT
+--- Leaving scope containing
+DT
+Adding function a
+--- Entering scope
+--- Entering scope
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object p
+--- Leaving scope containing
+U
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+Adding function h
+--- Entering scope
+Adding object null
+--- Leaving scope containing
+Adding function id
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object 0
+Adding object 0
+--- Leaving scope containing
+T
+--- Leaving scope containing
Index: src/Tests/Expect-s/Scope.txt
===================================================================
--- src/Tests/Expect-s/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+Adding object x
+Adding object z
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object a
+Adding object b
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding type u
+Adding function f
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+Adding object q
+Adding function w
+--- Entering scope
+Adding object y
+Adding object v
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type x
+Adding function t
+--- Entering scope
+--- Leaving scope containing
+Adding object u
+Adding object z
+--- Leaving scope containing
+x
+--- Leaving scope containing
+Adding object p
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type z
+Adding function u
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+z
+Adding context has_u
+Adding function q
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type t
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object the_t
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+--- Leaving scope containing
+t
+Adding function f
+--- Entering scope
+Adding object p
+--- Entering scope
+Adding object y
+--- Entering scope
+Adding object y
+--- Entering scope
+Adding object x
+Adding object z
+--- Leaving scope containing
+Adding object x
+--- Leaving scope containing
+Adding object q
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+Adding object z
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function q
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/ScopeErrors.txt
===================================================================
--- src/Tests/Expect-s/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,36 @@
+Adding object thisIsAnError
+Adding object thisIsAnError
+Adding object thisIsNotAnError
+Adding object thisIsNotAnError
+Adding function thisIsAlsoNotAnError
+--- Entering scope
+--- Entering scope
+Adding object thisIsNotAnError
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function thisIsAlsoNotAnError
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function thisIsStillNotAnError
+--- Entering scope
+--- Leaving scope containing
+Adding function thisIsStillNotAnError
+--- Entering scope
+--- Leaving scope containing
+Adding function butThisIsAnError
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function butThisIsAnError
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Expect-s/ShortCircuit.txt
===================================================================
--- src/Tests/Expect-s/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,21 @@
+Adding function ?!=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?!=?
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object a
+--- Entering scope
+Adding object b
+Adding object c
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Statement.txt
===================================================================
--- src/Tests/Expect-s/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,31 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?!=?
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object a
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object b
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object a
+--- Entering scope
+--- Entering scope
+Adding object b
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+__anonymous0
+--- Leaving scope containing
Index: src/Tests/Expect-s/StructMember.txt
===================================================================
--- src/Tests/Expect-s/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,34 @@
+Adding fwd decl for struct S
+--- Entering scope
+Adding object m1
+Adding object m2
+Adding object m3
+Adding object m4
+Adding object m5
+Adding object m6
+Adding object m7
+Adding object m8
+Adding object m9
+Adding object m10
+Adding object m11
+Adding object T
+Adding object T
+Adding object m12
+Adding object m13
+Adding object m14
+--- Leaving scope containing
+Adding struct S
+--- Entering scope
+--- Leaving scope containing
+Adding object s
+Adding fwd decl for union U
+--- Entering scope
+Adding object m1
+Adding object m2
+Adding object m3
+Adding object m4
+--- Leaving scope containing
+Adding union U
+--- Entering scope
+--- Leaving scope containing
+Adding object u
Index: src/Tests/Expect-s/Subrange.txt
===================================================================
--- src/Tests/Expect-s/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,78 @@
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?<?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?<=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding context ordered
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type base_t
+--- Leaving scope containing
+base_t
+Adding type subrange
+Adding object day_of_month
+Adding object lcase
+Adding object foo
+Adding function lbound
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object v
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function hbound
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object v
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding object lday
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object target
+Adding object source
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object target
+Adding object source
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
Index: src/Tests/Expect-s/Switch.txt
===================================================================
--- src/Tests/Expect-s/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Tuple.txt
===================================================================
--- src/Tests/Expect-s/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,79 @@
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function h
+--- Entering scope
+Adding object a
+Adding object b
+Adding object c
+Adding object d
+--- Leaving scope containing
+Adding fwd decl for struct inner
+--- Entering scope
+Adding object f2
+Adding object f3
+--- Leaving scope containing
+Adding struct inner
+Adding fwd decl for struct outer
+--- Entering scope
+Adding object f1
+--- Entering scope
+--- Leaving scope containing
+Adding object i
+Adding object f4
+--- Leaving scope containing
+Adding struct outer
+--- Entering scope
+--- Leaving scope containing
+Adding object s
+--- Entering scope
+--- Leaving scope containing
+Adding object sp
+Adding object t1
+Adding object t2
+Adding object t3
+Adding function printf
+--- Entering scope
+Adding object rc
+Adding object fmt
+--- Leaving scope containing
+Adding function printf
+--- Entering scope
+Adding object fmt
+--- Leaving scope containing
+Adding function f1
+--- Entering scope
+Adding object x
+Adding object y
+Adding object w
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g1
+--- Entering scope
+Adding object r
+--- Entering scope
+Adding object x
+Adding object p
+Adding object y
+Adding object z
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function main
+--- Entering scope
+Adding object rc
+Adding object argc
+Adding object argv
+--- Entering scope
+Adding object a
+Adding object b
+Adding object c
+Adding object d
+--- Entering scope
+--- Leaving scope containing
+Adding object t
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/TypeGenerator.txt
===================================================================
--- src/Tests/Expect-s/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,113 @@
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding context addable
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object data
+Adding object next
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding type List1
+Adding object li
+Adding function f
+--- Entering scope
+Adding object g
+--- Leaving scope containing
+Adding function h
+--- Entering scope
+Adding object p
+--- Leaving scope containing
+Adding fwd decl for struct S1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Leaving scope containing
+T
+Adding struct S1
+Adding fwd decl for struct S1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object i
+--- Leaving scope containing
+T
+Adding struct S1
+--- Entering scope
+--- Leaving scope containing
+Adding object v1
+--- Entering scope
+--- Leaving scope containing
+Adding object p
+Adding fwd decl for struct S2
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object i
+--- Leaving scope containing
+T
+Adding struct S2
+--- Entering scope
+--- Leaving scope containing
+Adding object v2
+Adding fwd decl for struct __anonymous1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object i
+--- Leaving scope containing
+T
+Adding struct __anonymous1
+--- Entering scope
+--- Leaving scope containing
+Adding object v2
+Adding fwd decl for struct node
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object data
+--- Entering scope
+--- Leaving scope containing
+Adding object next
+--- Leaving scope containing
+T
+Adding struct node
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding type List
+Adding object my_list
+--- Entering scope
+--- Leaving scope containing
+Adding type Complex
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Typedef.txt
===================================================================
--- src/Tests/Expect-s/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,34 @@
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding function T
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object T
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object fred
+Adding object b
+Adding function g
+--- Entering scope
+--- Entering scope
+Adding object a
+--- Leaving scope containing
+--- Leaving scope containing
+Adding object c
+Adding object p
+Adding object q
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object w
+Adding object x
+--- Leaving scope containing
+--- Leaving scope containing
+Adding object array
Index: src/Tests/Expect-s/TypedefDeclarator.txt
===================================================================
--- src/Tests/Expect-s/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,106 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object f1
+Adding object f2
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f7
+Adding object f8
+Adding object f9
+Adding object f10
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f17
+Adding object f18
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f27
+Adding object f28
+Adding object f29
+Adding object f30
+Adding object f31
+Adding object f32
+Adding object f33
+Adding object f34
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f45
+Adding object f46
+Adding object f47
+Adding object f48
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding function f65
+--- Entering scope
+--- Leaving scope containing
+Adding function f66
+--- Entering scope
+--- Leaving scope containing
+Adding function f67
+--- Entering scope
+--- Leaving scope containing
+Adding function f68
+--- Entering scope
+--- Leaving scope containing
+Adding function f69
+--- Entering scope
+--- Leaving scope containing
+Adding function f70
+--- Entering scope
+--- Leaving scope containing
+Adding function f71
+--- Entering scope
+--- Leaving scope containing
+Adding function f72
+--- Entering scope
+--- Leaving scope containing
+Adding function f73
+--- Entering scope
+--- Leaving scope containing
+Adding function f74
+--- Entering scope
+--- Leaving scope containing
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Expect-s/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,80 @@
+Adding function fred
+--- Entering scope
+Adding object f1
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding object f65
+Adding object f67
+Adding object f68
+Adding object f69
+Adding object f70
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+Adding object f82
+Adding object f83
+Adding object f84
+Adding object f85
+Adding object f90
+Adding object f91
+Adding object f92
+Adding object f93
+Adding object f94
+Adding object f100
+Adding object f101
+Adding object f102
+Adding object f103
+Adding object f108
+Adding object f109
+Adding object f110
+Adding object f111
+Adding object f112
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/Typeof.txt
===================================================================
--- src/Tests/Expect-s/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object v1
+Adding object v2
+Adding object v3
+Adding object v4
+Adding object v5
+Adding object v6
+Adding object p
+Adding object v7
+Adding object p
+Adding object v8
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/VariableDeclarator.txt
===================================================================
--- src/Tests/Expect-s/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,152 @@
+Adding object f1
+Adding object f2
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f7
+Adding object f8
+Adding object f9
+Adding object f10
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f17
+Adding object f18
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f27
+Adding object f28
+Adding object f29
+Adding object f30
+Adding object f31
+Adding object f32
+Adding object f33
+Adding object f34
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f45
+Adding object f46
+Adding object f47
+Adding object f48
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding function f65
+--- Entering scope
+--- Leaving scope containing
+Adding function f66
+--- Entering scope
+--- Leaving scope containing
+Adding function f67
+--- Entering scope
+--- Leaving scope containing
+Adding function f68
+--- Entering scope
+--- Leaving scope containing
+Adding function f69
+--- Entering scope
+--- Leaving scope containing
+Adding function f70
+--- Entering scope
+--- Leaving scope containing
+Adding function f71
+--- Entering scope
+--- Leaving scope containing
+Adding function f72
+--- Entering scope
+--- Leaving scope containing
+Adding function f73
+--- Entering scope
+--- Leaving scope containing
+Adding function f74
+--- Entering scope
+--- Leaving scope containing
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+Adding object cf3
+Adding object cf4
+Adding object cf5
+Adding object cf6
+Adding object cf15
+Adding object cf16
+Adding object cf19
+Adding object cf20
+Adding object cf21
+Adding object cf22
+Adding object cf23
+Adding object cf24
+Adding object cf25
+Adding object cf26
+Adding object cf35
+Adding object cf36
+Adding object cf37
+Adding object cf38
+Adding object cf39
+Adding object cf40
+Adding object cf41
+Adding object cf42
+Adding object cf43
+Adding object cf44
+Adding object cf49
+Adding object cf50
+Adding object cf51
+Adding object cf52
+Adding object cf53
+Adding object cf54
+Adding object cf55
+Adding object cf56
+Adding function cf65
+--- Entering scope
+--- Leaving scope containing
+Adding function cf66
+--- Entering scope
+--- Leaving scope containing
+Adding function cf67
+--- Entering scope
+--- Leaving scope containing
+Adding function cf68
+--- Entering scope
+--- Leaving scope containing
+Adding function cf69
+--- Entering scope
+--- Leaving scope containing
+Adding function cf70
+--- Entering scope
+--- Leaving scope containing
+Adding object v3
Index: src/Tests/Expect-s/gcc900407-1.txt
===================================================================
--- src/Tests/Expect-s/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+Adding function foo
+--- Entering scope
+Adding object a
+Adding object b
+Adding object p
+--- Entering scope
+Adding object c
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/gcc900516-1.txt
===================================================================
--- src/Tests/Expect-s/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding function f
+--- Entering scope
+Adding object c
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/gcc920301-1.txt
===================================================================
--- src/Tests/Expect-s/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object t
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+Adding object p
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/gcc920409-1.txt
===================================================================
--- src/Tests/Expect-s/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding function x
+--- Entering scope
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/gcc920409-2.txt
===================================================================
--- src/Tests/Expect-s/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Adding function x
+--- Entering scope
+--- Entering scope
+Adding object x1
+Adding object x2
+Adding object v
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/gcc920410-2.txt
===================================================================
--- src/Tests/Expect-s/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+Adding function joe
+--- Entering scope
+--- Entering scope
+Adding object j
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/gcc920501-1.txt
===================================================================
--- src/Tests/Expect-s/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding function a
+--- Entering scope
+--- Entering scope
+Adding object b
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/gcc920501-11.txt
===================================================================
--- src/Tests/Expect-s/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Expect-s/gcc920501-19.txt
===================================================================
--- src/Tests/Expect-s/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding object x
+Adding function y
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Expect-s/report
===================================================================
--- src/Tests/Expect-s/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-s/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Expect-v/Abstype.txt
===================================================================
--- src/Tests/Expect-v/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,138 @@
+T: type
+  with assertions
+    x: function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+y: function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of t_instance: instance of type T (not function type) 
+                  Return Statement, returning: Applying untyped: 
+    Name: x
+...to: 
+    Name: t
+
+
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+?++: function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+U: type for pointer to signed int 
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+    to:
+      pointer to pointer to signed int 
+    Cast of:
+      Variable Expression: _src: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+
+
+x: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of u_instance: instance of type U (not function type) with initializer 
+          Simple Initializer:             Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: u_instance
+                Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Name: u
+
+                  Return Statement, returning: Name: u
+
+
+
+break_abstraction: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: u
+
+
+
Index: src/Tests/Expect-v/Array.txt
===================================================================
--- src/Tests/Expect-v/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,50 @@
+a1: open array of signed int 
+a2: variable length array of signed int 
+a4: array of double with dimension of constant expression 3.0 double 
+m1: open array of array of signed int with dimension of constant expression 3 signed int 
+m2: variable length array of variable length array of signed int 
+m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a1: open array of signed int 
+        Declaration of a2: variable length array of signed int 
+        Declaration of a4: array of signed int with dimension of constant expression 3 signed int 
+        Declaration of T: array of signed int with dimension of constant expression 3 signed int 
+
+mary: function
+    with parameters
+      T: pointer to array of constant expression 3 signed int signed int 
+      p1: const pointer to array of constant expression 3 signed int signed int 
+      p2: pointer to static array of constant expression 3 signed int signed int 
+      p3: const pointer to static array of constant expression 3 signed int signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+tom: function
+      accepting unspecified arguments
+    returning 
+      pointer to array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+jane: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+          with parameters
+            T: pointer to array of constant expression 3 signed int signed int 
+            p1: const pointer to array of constant expression 3 signed int signed int 
+            p2: pointer to static array of constant expression 3 signed int signed int 
+            p3: const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-v/AsmName.txt
===================================================================
--- src/Tests/Expect-v/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,11 @@
+x: auto signed int 
+fred: function
+    with parameters
+      x: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: static signed int 
+        Declaration of z: static pointer to signed int 
+
Index: src/Tests/Expect-v/Attributes.txt
===================================================================
--- src/Tests/Expect-v/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Expect-v/Cast.txt
===================================================================
--- src/Tests/Expect-v/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+f: char 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: char 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+        Declaration of f: short signed int 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+                  Expression Statement:
+            Cast of:
+              Tuple:
+                                  Name: f
+
+                                  Name: f
+
+                                  Name: f
+
+
+            to:
+              long signed int 
+              long double 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+
Index: src/Tests/Expect-v/CastError.txt
===================================================================
--- src/Tests/Expect-v/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+f: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: signed int 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              char 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Expect-v/CharStringConstants.txt
===================================================================
--- src/Tests/Expect-v/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+constant expression ' ' char 
+                  Expression Statement:
+constant expression 'a' char 
+                  Expression Statement:
+constant expression '"' char 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression '\a' char 
+                  Expression Statement:
+constant expression '\b' char 
+                  Expression Statement:
+constant expression '\e' char 
+                  Expression Statement:
+constant expression '\f' char 
+                  Expression Statement:
+constant expression '\n' char 
+                  Expression Statement:
+constant expression '\r' char 
+                  Expression Statement:
+constant expression '\t' char 
+                  Expression Statement:
+constant expression '\v' char 
+                  Expression Statement:
+constant expression '\'' char 
+                  Expression Statement:
+constant expression '\"' char 
+                  Expression Statement:
+constant expression '\?' char 
+                  Expression Statement:
+constant expression '\\' char 
+                  Expression Statement:
+constant expression '\0' char 
+                  Expression Statement:
+constant expression '\377' char 
+                  Expression Statement:
+constant expression '\xf' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '' char 
+                  Expression Statement:
+constant expression 'aa' char 
+                  Expression Statement:
+constant expression 'a\na' char 
+                  Expression Statement:
+constant expression 'a\0a' char 
+                  Expression Statement:
+constant expression '\xfff' char 
+                  Expression Statement:
+constant expression '_\377_' char 
+                  Expression Statement:
+constant expression '_\xff_' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression 'a\xff34w' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression " " array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "a" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "'" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression "\a" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\b" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\e" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\f" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\n" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\r" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\t" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\v" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\'" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\"" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\?" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\\" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\0" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\377" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xf" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "" array of char with dimension of constant expression 3 unsigned int 
+                  Expression Statement:
+constant expression "aa" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "a\na" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int 
+                  Expression Statement:
+constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+
Index: src/Tests/Expect-v/CommentMisc.txt
===================================================================
--- src/Tests/Expect-v/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+i: signed int 
+i: signed int 
+i: signed int 
+i: signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: array of signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Expect-v/Constant0-1.txt
===================================================================
--- src/Tests/Expect-v/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,291 @@
+0: signed int 
+0: const signed int 
+0: static const signed int 
+1: signed int 
+1: const signed int 
+1: static const signed int 
+0: signed int 
+1: signed int 
+0: const signed int 
+1: const signed int 
+0: signed int 
+1: signed int 
+0: signed int 
+1: signed int 
+0: static const signed int 
+1: static const signed int 
+struct __anonymous0
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+0: instance of struct __anonymous0 
+struct __anonymous1
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+1: const instance of struct __anonymous1 
+struct __anonymous2
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+1: static const instance of struct __anonymous2 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+struct __anonymous3
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+0: pointer to instance of struct __anonymous3 
+x: pointer to signed int 
+0: pointer to signed int 
+x: const pointer to signed int 
+0: const pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+struct __anonymous4
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+0: pointer to instance of struct __anonymous4 
+struct __anonymous5
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous5 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+0: const pointer to instance of struct __anonymous5 
+struct __anonymous6
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous6 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+0: static const pointer to instance of struct __anonymous6 
+x: static pointer to signed int 
+0: static pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+x: const pointer to pointer to signed int 
+0: const pointer to pointer to signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of 1: signed int 
+        Declaration of 0: pointer to signed int 
+        Declaration of x: pointer to signed int 
+        Declaration of 0: pointer to signed int 
+
Index: src/Tests/Expect-v/Context.txt
===================================================================
--- src/Tests/Expect-v/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,79 @@
+context has_q
+    with parameters
+      T: type
+
+    with members
+      q: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+f: forall
+      z: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type z (not function type) 
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+          q: pointer to function
+              with parameters
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+
+    function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of context has_r
+            with parameters
+              T: type
+              U: type
+
+            with members
+              r: function
+                  with parameters
+                    instance of type T (not function type) 
+                    pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+                  returning 
+                    instance of type T (not function type) 
+
+
+        Declaration of x: auto type
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+        Declaration of y: auto type
+          with assertions
+            instance of context has_r 
+              with parameters
+                instance of type x (not function type) 
+                instance of type y (not function type) 
+
+
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type y (not function type) 
+              _src: instance of type y (not function type) 
+            returning 
+              instance of type y (not function type) 
+
+
Index: src/Tests/Expect-v/DeclarationErrors.txt
===================================================================
--- src/Tests/Expect-v/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-v/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Expect-v/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Expect-v/Enum.txt
===================================================================
--- src/Tests/Expect-v/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+enum Colors
+    with members
+      Red: const instance of enum Colors 
+      Yellow: const instance of enum Colors 
+      Pink: const instance of enum Colors 
+      Blue: const instance of enum Colors 
+      Purple: const instance of enum Colors 
+      Orange: const instance of enum Colors 
+      Green: const instance of enum Colors 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of enum Fruits
+            with members
+              Apple: const instance of enum Fruits 
+              Banana: const instance of enum Fruits 
+              Pear: const instance of enum Fruits 
+              Mango: const instance of enum Fruits 
+
+        Declaration of fruit: instance of enum Fruits with initializer 
+          Simple Initializer:             Name: Mango
+
+
Index: src/Tests/Expect-v/Exception.txt
===================================================================
--- src/Tests/Expect-v/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,60 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int 
+                  Throw Statement, returning: constant expression 3 signed int 
+
+                  Throw Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+constant expression 5 signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+            and handlers: 
+              Catch Statement
+              ... catching
+i: signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?/?
+                    ...to: 
+                        Name: x
+constant expression 4 signed int 
+            and handlers: 
+              Catch Statement
+              ... catching
+signed int 
+              Catch Statement
+              ... catching
+x: signed int 
+              Catch Statement
+              ... catching
+struct __anonymous0
+              Catch Statement
+              ... catching
+x: instance of struct __anonymous1 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous2 
+              Catch Statement
+              ... catching
+pointer to instance of struct __anonymous3 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous4 
+              Catch Statement
+              ... catching
+                  the rest
+
+
Index: src/Tests/Expect-v/Expression.txt
===================================================================
--- src/Tests/Expect-v/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,365 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of struct s
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s 
+              _src: instance of struct s 
+            returning 
+              instance of struct s 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s 
+
+
+
+        Declaration of p: pointer to instance of struct s 
+        Declaration of i: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: !?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ~?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: +?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: -?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: --?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?--
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?==?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?!=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Member Expression, with field: i            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: i
+                    Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: i
+            Second alternative:
+              Name: i
+
+
+
Index: src/Tests/Expect-v/Forall.txt
===================================================================
--- src/Tests/Expect-v/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,731 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+g1: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+        Declaration of h: function
+            with parameters
+              p: pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+        Declaration of x: signed int 
+        Declaration of y: pointer to function
+            returning 
+              nothing 
+
+        Declaration of z: char 
+        Declaration of w: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: f
+                ...to: 
+                    Name: y
+
+
+g2: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+        Declaration of x: signed int 
+        Declaration of y: float 
+        Declaration of z: pointer to signed int 
+        Declaration of w: pointer to float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: z
+
+
+swap: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of temp: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: temp
+                Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: left
+                Name: right
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: right
+                Name: temp
+
+
+context sumable
+    with parameters
+      T: type
+
+    with members
+      0: const instance of type T (not function type) 
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?++: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?+=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+T1: type
+  with assertions
+    0: const instance of type T1 (not function type) 
+    ?+?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?++: function
+        with parameters
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?+=?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+T2: type
+  with parameters
+    P1: type
+    P2: type
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+T3: type
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T3 (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+struct __anonymous0
+    with members
+      i: instance of type P1 (not function type) 
+      j: instance of type P2 (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type P1 (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    j: instance of type P2 (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+T2: type for instance of struct __anonymous0 
+  with parameters
+    P1: type
+    P2: type
+
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T2 (not function type) 
+          with parameters
+            instance of type P1 (not function type) 
+            instance of type P2 (not function type) 
+
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+w1: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g2: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+w3: type for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+g3: instance of type w3 (not function type) 
+sum: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: pointer to instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of total: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: total
+                Name: 0
+
+        Declaration of i: signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: n
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: total
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Name: total
+                        Applying untyped: 
+                            Name: ?[?]
+                        ...to: 
+                            Name: a
+                            Name: i
+
+
+                  Return Statement, returning: Name: total
+
+
+
+twice: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?+?
+...to: 
+    Name: t
+    Name: t
+
+
+
+min: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Conditional expression on: 
+  Cast of:
+    Applying untyped: 
+        Name: ?!=?
+    ...to: 
+        Applying untyped: 
+            Name: ?<?
+        ...to: 
+            Name: t1
+            Name: t2
+        Name: 0
+
+  to:
+    signed int 
+First alternative:
+  Name: t1
+Second alternative:
+  Name: t2
+
+
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int with initializer 
+          Simple Initializer:             Name: 1
+
+        Declaration of y: signed int with initializer 
+          Simple Initializer: constant expression 2 signed int 
+        Declaration of a: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: swap
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: twice
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: f
+                Applying untyped: 
+                    Name: min
+                ...to: 
+constant expression 4.0 double constant expression 3.0 double 
+                  Expression Statement:
+            Applying untyped: 
+                Name: sum
+            ...to: 
+constant expression 10 signed int                 Name: a
+
+
Index: src/Tests/Expect-v/Function.txt
===================================================================
--- src/Tests/Expect-v/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,126 @@
+a: signed int 
+a: float 
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Cast of:
+                  Name: a
+
+                to:
+                  signed int 
+
+                  Expression Statement:
+            Cast of:
+              Applying untyped: 
+                  Name: f
+              ...to: 
+                  Name: a
+
+            to:
+              signed int 
+
+
+p: tuple of types
+    signed int 
+
+p: tuple of types
+    signed int 
+    double 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+q: tuple of types
+    char 
+
+q: tuple of types
+    signed int 
+    signed int 
+
+q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+s: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Name: p
+                Name: q
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Tuple:
+                                      Name: q
+
+                                      Name: p
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: p
+                    Name: q
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: q
+                    Name: q
+
+
Index: src/Tests/Expect-v/Functions.txt
===================================================================
--- src/Tests/Expect-v/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,681 @@
+h: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      pointer to function
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      g: pointer to function
+          returning 
+            nothing 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Applying untyped: 
+                    Name: *?
+                ...to: 
+                    Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: g
+                Name: h
+
+
+f1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f3: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f4: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f5: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f6: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f7: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f8: function
+      accepting unspecified arguments
+    returning 
+      pointer to pointer to signed int 
+    with body 
+      CompoundStmt
+
+f9: function
+      accepting unspecified arguments
+    returning 
+      pointer to const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f10: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+f12: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+fII1: function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII2: function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII3: auto function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII4: auto function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII5: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII6: function
+      accepting unspecified arguments
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII7: function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII8: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII9: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fO1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO3: function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO4: auto function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO5: auto function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      nothing 
+
+f: function
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      x: signed int 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+
+f: function
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f12: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      pointer to function
+          with parameters
+            signed int 
+            p: signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+
+f1: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const signed int 
+    with body 
+      CompoundStmt
+
+f2: static function
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+f3: inline static function
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f4: inline static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+
+f5: static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          const signed int 
+
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      pointer to signed int 
+      pointer to array of constant expression 10 signed int signed int 
+      pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to signed int 
+      pointer to pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      pointer to pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      pointer to const pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      pointer to signed int 
+      pointer to array of constant expression 10 signed int signed int 
+      pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to signed int 
+      pointer to pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      pointer to pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      pointer to const pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      f: pointer to signed int 
+      t: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of T: signed int 
+
Index: src/Tests/Expect-v/GccExtensions.txt
===================================================================
--- src/Tests/Expect-v/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,147 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c1: double _Complex 
+        Declaration of c2: double _Complex 
+        Declaration of i1: const signed int 
+        Declaration of i2: const signed int 
+        Declaration of i3: const signed int 
+        Declaration of ex: const signed int 
+        Declaration of f1: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of f2: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of s1: signed int 
+        Declaration of s2: signed int 
+        Declaration of t1: type-of expression           Name: s1
+
+        Declaration of t2: type-of expression           Name: s1
+
+        Declaration of v1: volatile signed int 
+        Declaration of v2: volatile signed int 
+        Declaration of a1: signed int 
+        Declaration of a2: const signed int 
+        Declaration of a3: static const signed int 
+        Declaration of a4: static const signed int 
+        Declaration of a5: static const signed int 
+        Declaration of a6: static const signed int 
+        Declaration of a7: static const signed int 
+        Declaration of p1: pointer to signed int 
+        Declaration of p2: pointer to signed int 
+        Declaration of struct s1
+        Declaration of struct s2
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s2 
+              _src: instance of struct s2 
+            returning 
+              instance of struct s2 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s2 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s2 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s2 
+
+
+
+        Declaration of struct s3
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s3 
+              _src: instance of struct s3 
+            returning 
+              instance of struct s3 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s3 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s3 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s3 
+
+
+
+        Declaration of x1: instance of struct s3 
+        Declaration of y1: instance of struct s3 
+        Declaration of struct s4
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s4 
+              _src: instance of struct s4 
+            returning 
+              instance of struct s4 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s4 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s4 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s4 
+
+
+
+        Declaration of x2: instance of struct s4 
+        Declaration of y2: instance of struct s4 
+        Declaration of m1: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of m2: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+        Declaration of m3: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Expect-v/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Expect-v/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,185 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Expect-v/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Expect-v/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,221 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f2: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f7: pointer to signed int 
+      f8: pointer to pointer to signed int 
+      f9: pointer to const pointer to signed int 
+      f10: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f17: pointer to signed int 
+      f18: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f27: pointer to pointer to signed int 
+      f28: pointer to array of constant expression 10 signed int pointer to signed int 
+      f29: pointer to pointer to pointer to signed int 
+      f30: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f31: pointer to pointer to const pointer to signed int 
+      f32: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f33: pointer to const pointer to const pointer to signed int 
+      f34: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f45: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f46: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f47: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f48: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f66: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f71: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f72: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f73: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f74: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      f86: const pointer to variable length array of signed int 
+      f87: const pointer to array of constant expression 3 signed int signed int 
+      f88: pointer to static array of constant expression 3 signed int signed int 
+      f89: const pointer to static array of constant expression 3 signed int signed int 
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f95: const pointer to variable length array of pointer to signed int 
+      f96: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f97: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f98: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f99: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f104: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f105: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f106: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f107: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f113: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f114: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f115: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f116: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f117: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-v/InferParam.txt
===================================================================
--- src/Tests/Expect-v/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,173 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+g: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: g
+                ...to: 
+                    Name: a
+
+
+context has_f_and_j
+    with parameters
+      T: type
+      U: type
+
+    with members
+      f: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+      j: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type U (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+
+j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+k: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          j: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+l: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: k
+                ...to: 
+                    Name: b
+
+
Index: src/Tests/Expect-v/Initialization.txt
===================================================================
--- src/Tests/Expect-v/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,669 @@
+x11: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x12: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x21: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x22: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y1: array of signed int with dimension of constant expression 20 signed int 
+y2: array of signed int with dimension of constant expression 20 signed int 
+struct __anonymous0
+    with members
+      w: tuple of types
+          signed int 
+
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    w: tuple of types
+                      signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+a: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer:       Tuple:
+        constant expression 2 signed int 
+
+      designated by:         Name: w
+
+struct __anonymous1
+    with members
+      a: array of signed int with dimension of constant expression 3 signed int 
+      b: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+        Declaration of _index0: C signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Variable Expression: _index0: signed int 
+                    Name: 0
+
+            condition: 
+              Applying untyped: 
+                  Name: ?<?
+              ...to: 
+                  Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+            increment: 
+              Applying untyped: 
+                  Name: ++?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Member Expression, with field: 
+                          a: array of signed int with dimension of constant expression 3 signed int 
+                        from aggregate: 
+                          Applying untyped: 
+                              Name: *?
+                          ...to: 
+                              Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                        Variable Expression: _index0: signed int 
+                    Applying untyped: 
+                        Name: ?[?]
+                    ...to: 
+                        Member Expression, with field: 
+                          a: array of signed int with dimension of constant expression 3 signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous1 
+                        Variable Expression: _index0: signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    b: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+w: open array of instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: 0
+        Name: a
+      ]
+      Simple Initializer:         Name: 1
+
+    Simple Initializer:       Name: 1
+
+      designated by:         Name: 0
+        Name: b
+
+    Simple Initializer: constant expression 2 signed int 
+      designated by:         Name: 1
+        Name: a
+        Name: 0
+
+struct __anonymous2
+    with members
+      g1: signed int 
+      g2: signed int 
+      g3: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    g1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    g2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    g3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+struct __anonymous3
+    with members
+      f1: signed int 
+      f2: signed int 
+      f3: signed int 
+      f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+        Declaration of _index1: C signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Variable Expression: _index1: signed int 
+                    Name: 0
+
+            condition: 
+              Applying untyped: 
+                  Name: ?<?
+              ...to: 
+                  Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+            increment: 
+              Applying untyped: 
+                  Name: ++?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Member Expression, with field: 
+                          f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+                        from aggregate: 
+                          Applying untyped: 
+                              Name: *?
+                          ...to: 
+                              Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                        Variable Expression: _index1: signed int 
+                    Applying untyped: 
+                        Name: ?[?]
+                    ...to: 
+                        Member Expression, with field: 
+                          f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous3 
+                        Variable Expression: _index1: signed int 
+
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+v7: instance of struct __anonymous3 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: f1
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: f2
+
+    Compound initializer:        designated by: [        Name: f4
+constant expression 2 signed int       ]
+      Simple Initializer: constant expression 3 signed int 
+        designated by:           Name: g1
+
+      Simple Initializer:         Name: 0
+
+        designated by:           Name: g3
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: f4
+constant expression 3 signed int         Name: g3
+
+struct __anonymous4
+    with members
+      y1: signed int 
+      y2: signed int 
+      y3: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+struct point
+    with members
+      x: signed int 
+      z: signed int 
+      y: instance of struct __anonymous4 
+      w: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    z: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous4 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    w: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+struct quintet
+    with members
+      v: signed int 
+      w: signed int 
+      x: signed int 
+      y: signed int 
+      z: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    v: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    w: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    z: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p1: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+              designated by:                 Name: x
+
+        Declaration of p2: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+            Simple Initializer: constant expression 4 signed int 
+        Declaration of p3: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: x
+                Name: z
+
+            Compound initializer:                designated by: [                Name: y
+              ]
+              Simple Initializer: constant expression 6 signed int 
+                designated by:                   Name: y3
+                  Name: y1
+
+              Simple Initializer: constant expression 17 signed int 
+        Declaration of p4: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: w
+
+            Simple Initializer: constant expression 4 signed int 
+
Index: src/Tests/Expect-v/Initialization2.txt
===================================================================
--- src/Tests/Expect-v/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,740 @@
+a: signed int with initializer 
+  Simple Initializer: constant expression 3 signed int 
+struct __anonymous0
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+z: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Simple Initializer: constant expression 7 signed int 
+struct __anonymous1
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+z1: instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+        Name: y
+
+struct __anonymous2
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+z2: instance of struct __anonymous2 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: y
+
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: x
+
+struct __anonymous3
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+struct __anonymous4
+    with members
+      x: signed int 
+      y: instance of struct __anonymous3 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous3 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+z3: instance of struct __anonymous4 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 4 signed int 
+        designated by:           Name: y1
+
+      Simple Initializer: constant expression 5 signed int 
+        designated by:           Name: y2
+
+struct __anonymous5
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous5 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous5 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+struct __anonymous6
+    with members
+      x: signed int 
+      y: instance of struct __anonymous5 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous6 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous5 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous6 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+z3: instance of struct __anonymous6 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+struct __anonymous7
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous7 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous7 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous7 
+
+
+
+struct __anonymous8
+    with members
+      x: signed int 
+      y: instance of struct __anonymous7 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous8 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous7 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous8 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous8 
+
+
+
+z3: instance of struct __anonymous8 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+    Compound initializer:  
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+struct __anonymous9
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous9 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous9 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous9 
+
+
+
+struct __anonymous10
+    with members
+      x: signed int 
+      y: instance of struct __anonymous9 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous10 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous9 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous10 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous10 
+
+
+
+z3: instance of struct __anonymous10 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Compound initializer:  
+      Simple Initializer: constant expression 4 signed int 
+      Simple Initializer: constant expression 5 signed int 
+struct t
+    with members
+      a: signed int 
+      b: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct t 
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct t 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    b: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct t 
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct t 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct t 
+
+
+
+x: instance of struct t with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: b
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: a
+
+struct __anonymous11
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous11 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous11 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous11 
+
+
+
+z6: instance of struct __anonymous11 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 5 signed int 
+    Simple Initializer: constant expression 6 signed int 
+    Simple Initializer: constant expression 4 signed int 
Index: src/Tests/Expect-v/LabelledExit.txt
===================================================================
--- src/Tests/Expect-v/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,743 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+        Declaration of x: signed int 
+        Declaration of y: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: y
+                Name: 0
+
+                  CompoundStmt
+                          If on condition: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?==?
+                        ...to: 
+                            Name: x
+                            Name: y
+                        Name: 0
+
+                  to:
+                    signed int 
+              .... and branches: 
+                  CompoundStmt
+                                          Labels: {}
+                      For Statement
+                        initialization: 
+
+                        condition: 
+                          Cast of:
+                            Applying untyped: 
+                                Name: ?!=?
+                            ...to: 
+                                Applying untyped: 
+                                    Name: ?<?
+                                ...to: 
+                                    Name: i
+                                    Name: y
+                                Name: 0
+
+                          to:
+                            signed int 
+
+                        increment: 
+
+                        statement block: 
+                          CompoundStmt
+                                                          Expression Statement:
+                                Applying untyped: 
+                                    Name: ?+=?
+                                ...to: 
+                                    Address of:
+                                      Name: y
+                                    Name: 1
+
+                                                          If on condition: 
+                                  Cast of:
+                                    Applying untyped: 
+                                        Name: ?!=?
+                                    ...to: 
+                                        Applying untyped: 
+                                            Name: ?<?
+                                        ...to: 
+                                            Name: y
+constant expression 10 signed int                                         Name: 0
+
+                                  to:
+                                    signed int 
+                              .... and branches: 
+                                  Branch (Break)
+
+
+
+
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Name: y
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              Null Statement
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: x
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: y
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                                                  If on condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?==?
+                                    ...to: 
+                                        Name: y
+constant expression 3 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+                          .... and branches: 
+                              Branch (Break)
+
+
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: x
+                        Name: 1
+
+
+                  Labels: {A,}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {B,}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: i
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 10 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?+=?
+                      ...to: 
+                          Address of:
+                            Name: i
+                          Name: 1
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {C,}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Applying untyped: 
+                                    Name: ?=?
+                                ...to: 
+                                    Address of:
+                                      Name: i
+                                    Name: 0
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?<?
+                                    ...to: 
+                                        Name: i
+constant expression 10 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Applying untyped: 
+                                  Name: ?+=?
+                              ...to: 
+                                  Address of:
+                                    Name: i
+                                  Name: 1
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {D,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+                                  Branch (Continue)
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: 1
+
+                  Branch (Goto)
+
+                  Labels: {X,Y,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Continue)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  Branch (Break)
+
+
+
+                  Labels: {XX,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {YY,}
+                  For Statement
+                    initialization: 
+
+                    condition: 
+
+                    increment: 
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {ZZ,}
+                          For Statement
+                            initialization: 
+
+                            condition: 
+
+                            increment: 
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Expression Statement:
+                                    Applying untyped: 
+                                        Name: ?+=?
+                                    ...to: 
+                                        Address of:
+                                          Name: i
+                                        Name: 1
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+Declaration of i: signed int with initializer 
+              Simple Initializer:                 Name: 0
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: 0
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20,L21,L22,L23,L24,L25,L26,L27,L28,L29,L31,L32,L33,L34,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Switch on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Choose on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+                  Fall-through statement
+              Case constant expression 2 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  CompoundStmt
+            Declaration of array: static open array of pointer to void with initializer 
+              Compound initializer:  
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: foo
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: bar
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: hack
+
+                          Branch (Goto)
+
+
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: i
+constant expression 5 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  Branch (Break)
+
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?+=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 1
+
+
Index: src/Tests/Expect-v/Members.txt
===================================================================
--- src/Tests/Expect-v/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,383 @@
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+__builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+struct a_struct
+    with members
+      a: signed int 
+      a: char 
+      a: float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct a_struct 
+
+
+
+union b_struct
+    with members
+      a: pointer to signed int 
+      a: pointer to char 
+      a: pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: __builtin_memcpy
+            ...to: 
+                Variable Expression: _dst: pointer to instance of union b_struct 
+                Address of:
+                  Variable Expression: _src: instance of union b_struct 
+                Sizeof Expression on: instance of union b_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of union b_struct 
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of the_struct: instance of struct a_struct 
+        Declaration of the_struct: instance of union b_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+
+struct c_struct
+    with members
+      signed int 
+      char 
+      float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct c_struct 
+
+
+
+union d_struct
+    with members
+      pointer to signed int 
+      pointer to char 
+      pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union d_struct 
+      _src: instance of union d_struct 
+    returning 
+      instance of union d_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: __builtin_memcpy
+            ...to: 
+                Variable Expression: _dst: pointer to instance of union d_struct 
+                Address of:
+                  Variable Expression: _src: instance of union d_struct 
+                Sizeof Expression on: instance of union d_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of union d_struct 
+
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of x: short unsigned int 
+        Declaration of x: instance of struct c_struct 
+        Declaration of x: instance of union d_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Name: x
+
+
+struct forward
+q: pointer to instance of struct forward 
+struct forward
+    with members
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct forward 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct forward 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct forward 
+
+
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Member Expression, with field: y            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: q
+
+
Index: src/Tests/Expect-v/Misc.txt
===================================================================
--- src/Tests/Expect-v/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on:                   Name: a
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on: signed int 
+
+
Index: src/Tests/Expect-v/MiscError.txt
===================================================================
--- src/Tests/Expect-v/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,52 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: b
+
+                  Name: a
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: b
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: b
+
+                  Name: b
+
+                  Expression Statement:
+            Sizeof Expression on:               Name: b
+
+
+
Index: src/Tests/Expect-v/NamedParmArg.txt
===================================================================
--- src/Tests/Expect-v/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,94 @@
+f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int 
+    returning 
+      signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 with designator:                  Name: i
+                Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int                 with designator:                  Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Applying untyped: 
+                    Name: f2
+                ...to: 
+                with designator:                  Tuple:
+                                          Name: j
+
+                                          Name: i
+
+
+
Index: src/Tests/Expect-v/NumericConstants.txt
===================================================================
--- src/Tests/Expect-v/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,88 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Name: 1
+
+                  Expression Statement:
+constant expression 21 signed int 
+                  Expression Statement:
+constant expression 2147483647 signed int 
+                  Expression Statement:
+constant expression 37LL long long signed int 
+                  Expression Statement:
+constant expression 45ull long long unsigned int 
+                  Expression Statement:
+constant expression 89llu long long unsigned int 
+                  Expression Statement:
+constant expression 99LLu long long unsigned int 
+                  Expression Statement:
+constant expression 56lu long unsigned int 
+                  Expression Statement:
+constant expression 88LLu long long unsigned int 
+                  Expression Statement:
+constant expression 0u unsigned int 
+                  Expression Statement:
+constant expression 0377 signed int 
+                  Expression Statement:
+constant expression 0377ul long unsigned int 
+                  Expression Statement:
+constant expression 0x1 signed int 
+                  Expression Statement:
+constant expression 0x1u unsigned int 
+                  Expression Statement:
+constant expression 0xabL long signed int 
+                  Expression Statement:
+constant expression 0x80000000 unsigned int 
+                  Expression Statement:
+constant expression 0xfff signed int 
+                  Expression Statement:
+constant expression 0xef3daa5c unsigned int 
+                  Expression Statement:
+constant expression 0x3LL long long signed int 
+                  Expression Statement:
+constant expression 3. double 
+                  Expression Statement:
+constant expression 3100. double 
+                  Expression Statement:
+constant expression 1000000. double 
+                  Expression Statement:
+constant expression 3.1 double 
+                  Expression Statement:
+constant expression 3.141592654L long double 
+                  Expression Statement:
+constant expression 123456.123456 double 
+                  Expression Statement:
+constant expression 3E1 double 
+                  Expression Statement:
+constant expression 3e1f float 
+                  Expression Statement:
+constant expression 3E11F float 
+                  Expression Statement:
+constant expression 3E11 double 
+                  Expression Statement:
+constant expression 3e+11 double 
+                  Expression Statement:
+constant expression 3E-11 double 
+                  Expression Statement:
+constant expression 3.0E1 double 
+                  Expression Statement:
+constant expression 3.0E1L long double 
+                  Expression Statement:
+constant expression 3.0e11 double 
+                  Expression Statement:
+constant expression 3.0E11l long double 
+                  Expression Statement:
+constant expression 3.0e+11l long double 
+                  Expression Statement:
+constant expression 3.0E-11 double 
+                  Expression Statement:
+constant expression 123456.123456E-16 double 
+                  Expression Statement:
+constant expression 0xff.ffp0 double 
+                  Expression Statement:
+constant expression 0x1.ffffffffp128l long double 
+
Index: src/Tests/Expect-v/OccursError.txt
===================================================================
--- src/Tests/Expect-v/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,54 @@
+f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to function
+          with parameters
+            instance of type T (not function type) 
+            pointer to instance of type T (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+g: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+test: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: g
+
+
Index: src/Tests/Expect-v/Operators.txt
===================================================================
--- src/Tests/Expect-v/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,114 @@
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: number1
+    Name: number2
+
+
+
+?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+struct accumulator
+    with members
+      total: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct accumulator 
+      _src: instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    total: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct accumulator 
+                Member Expression, with field: 
+                  total: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct accumulator 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct accumulator 
+
+
+
+?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: char 
+        Declaration of b: char 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?()
+            ...to: 
+                Name: a
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+        Declaration of ?+?: instance of struct accumulator 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+
Index: src/Tests/Expect-v/Quad.txt
===================================================================
--- src/Tests/Expect-v/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: t
+    Name: t
+
+
+
+quad: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: square
+...to: 
+    Applying untyped: 
+        Name: square
+    ...to: 
+        Name: u
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: quad
+            ...to: 
+constant expression 7 signed int 
+
Index: src/Tests/Expect-v/Rank2.txt
===================================================================
--- src/Tests/Expect-v/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,117 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+a: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+        Declaration of g: function
+            with parameters
+              p: pointer to forall
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: f
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of h: function
+            with parameters
+              null: pointer to signed int 
+            returning 
+              nothing 
+
+        Declaration of id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+        Declaration of 0: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: id
+                ...to: 
+                    Applying untyped: 
+                        Name: id
+                    ...to: 
+                        Applying untyped: 
+                            Name: id
+                        ...to: 
+                            Name: 0
+
+
Index: src/Tests/Expect-v/Scope.txt
===================================================================
--- src/Tests/Expect-v/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,282 @@
+x: signed int 
+z: double 
+struct __anonymous0
+    with members
+      a: signed int 
+      b: double 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    b: double 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+u: type for instance of struct __anonymous0 
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+f: function
+    with parameters
+      y: signed int 
+    returning 
+      signed int 
+
+q: double 
+w: function
+    with parameters
+      y: double 
+      v: instance of type u (not function type) 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of x: type
+          with assertions
+            t: function
+                with parameters
+                  instance of type u (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+        Declaration of u: instance of type u (not function type) with initializer 
+          Simple Initializer:             Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: u
+                Name: y
+
+        Declaration of z: instance of type x (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: t
+            ...to: 
+                Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: z
+                Applying untyped: 
+                    Name: t
+                ...to: 
+                    Name: u
+
+
+p: double 
+context has_u
+    with parameters
+      z: type
+
+    with members
+      u: function
+          with parameters
+            instance of type z (not function type) 
+          returning 
+            instance of type z (not function type) 
+
+
+q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of y: instance of type t (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: u
+            ...to: 
+                Name: the_t
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: y
+                Applying untyped: 
+                    Name: u
+                ...to: 
+                    Name: the_t
+
+
+f: function
+    with parameters
+      p: double 
+    returning 
+      float 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+                  CompoundStmt
+            Declaration of y: char 
+                          CompoundStmt
+                Declaration of x: char 
+                Declaration of z: char with initializer 
+                  Simple Initializer:                     Name: x
+
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: z
+                        Name: x
+
+
+            Declaration of x: char with initializer 
+              Simple Initializer:                 Name: y
+
+                          Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: x
+                    Name: y
+
+
+        Declaration of q: char with initializer 
+          Simple Initializer:             Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: q
+                Name: y
+
+
+g: function
+    returning 
+      float 
+    with body 
+      CompoundStmt
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: some_func
+                    ...to: 
+
+            and handlers: 
+              Catch Statement
+              ... catching
+x: char 
+
+        Declaration of z: char 
+
+q: function
+      accepting unspecified arguments
+    returning 
+      double 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+                  Switch on condition: Name: i
+
+              Case Name: 0
+
+                  Return Statement, returning: Name: q
+
+              Default 
+                  Return Statement, returning: Name: i
+
+
+
Index: src/Tests/Expect-v/ScopeErrors.txt
===================================================================
--- src/Tests/Expect-v/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Expect-v/ShortCircuit.txt
===================================================================
--- src/Tests/Expect-v/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,105 @@
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+0: signed int 
+g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      a: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+        Declaration of c: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Name: a
+                        Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Name: b
+                Second alternative:
+                  Name: c
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: c
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: b
+      Name: 0
+
+to:
+  signed int 
+
+
+
Index: src/Tests/Expect-v/Statement.txt
===================================================================
--- src/Tests/Expect-v/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,108 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+0: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of struct __anonymous0
+            with members
+              b: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            b: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                        Member Expression, with field: 
+                          b: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous0 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+        Declaration of a: instance of struct __anonymous0 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: a
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Name: a
+                            Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                        Declaration of b: pointer to signed int 
+                                                  Labels: {}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Name: b
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Name: a
+                                    Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Name: b
+
+                            statement block: 
+                              CompoundStmt
+
+
+
+
+
Index: src/Tests/Expect-v/StructMember.txt
===================================================================
--- src/Tests/Expect-v/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,693 @@
+struct S
+    with members
+      m1: signed int with bitfield width constant expression 3 signed int 
+      m2: signed int with bitfield width constant expression 4 signed int 
+      signed int with bitfield width constant expression 2 signed int 
+      signed int with bitfield width constant expression 3 signed int 
+      signed int with bitfield width constant expression 4 signed int 
+      m3: signed int 
+      m4: signed int 
+      m5: signed int 
+      m6: signed int 
+      m7: pointer to signed int 
+      m8: pointer to signed int 
+      m9: pointer to signed int 
+      m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      T: signed int 
+      T: signed int 
+      m12: pointer to signed int 
+      m13: pointer to signed int 
+      m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m1: signed int with bitfield width constant expression 3 signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m2: signed int with bitfield width constant expression 4 signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m4: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m5: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m6: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m7: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m8: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m9: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m10: pointer to function
+                        accepting unspecified arguments
+                      returning 
+                        signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m11: pointer to function
+                      with parameters
+                        signed int 
+                      returning 
+                        pointer to signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    T: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    T: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m12: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m13: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m14: pointer to function
+                      with parameters
+                        signed int 
+                      returning 
+                        pointer to signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to function
+                        accepting unspecified arguments
+                      returning 
+                        signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to pointer to function
+                      with parameters
+                        signed int 
+                      returning 
+                        signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+s: instance of struct S 
+union U
+    with members
+      m1: array of signed int with dimension of constant expression 5 signed int 
+      m2: array of signed int with dimension of constant expression 5 signed int 
+      m3: pointer to signed int 
+      m4: pointer to signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union U 
+      _src: instance of union U 
+    returning 
+      instance of union U 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: __builtin_memcpy
+            ...to: 
+                Variable Expression: _dst: pointer to instance of union U 
+                Address of:
+                  Variable Expression: _src: instance of union U 
+                Sizeof Expression on: instance of union U 
+
+                  Return Statement, returning: Variable Expression: _src: instance of union U 
+
+
+
+u: instance of union U 
Index: src/Tests/Expect-v/Subrange.txt
===================================================================
--- src/Tests/Expect-v/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,409 @@
+context ordered
+    with parameters
+      T: type
+
+    with members
+      ?<?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+      ?<=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+
+subrange: type for instance of type base_t (not function type) 
+  with parameters
+    base_t: type
+      with assertions
+        instance of context ordered 
+          with parameters
+            instance of type base_t (not function type) 
+
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type subrange (not function type) 
+      _src: instance of type subrange (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+    to:
+      pointer to instance of type base_t (not function type) 
+    Cast of:
+      Variable Expression: _src: instance of type subrange (not function type) 
+
+    to:
+      instance of type base_t (not function type) 
+
+
+
+day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+lcase: instance of type subrange (not function type) 
+  with parameters
+    char 
+    constant expression 'a' char 
+    constant expression 'z' char 
+
+foo: instance of type subrange (not function type) 
+  with parameters
+    signed int 
+          Name: 0
+
+          Applying untyped: 
+          Name: ?&?
+      ...to: 
+          Applying untyped: 
+              Name: rand
+          ...to: 
+constant expression 0xF signed int 
+
+lbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: low
+
+
+
+hbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: high
+
+
+
+lday: unsigned int with initializer 
+  Simple Initializer:     Applying untyped: 
+        Name: lbound
+    ...to: 
+        Name: day_of_month
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+      source: instance of type T (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: high
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+      source: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: s_low
+
+                      Name: s_high
+
+
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: s_low
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: s_high
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
Index: src/Tests/Expect-v/Switch.txt
===================================================================
--- src/Tests/Expect-v/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+                  Switch on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: constant expression 3 signed int 
+              Default 
+              Case constant expression 2 signed int 
+              Case constant expression 3 signed int 
+                  Expression Statement:
+constant expression 3 signed int 
+                  Switch on condition: Name: i
+
+
+                  Switch on condition: Name: i
+
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+  constant expression 7 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Fall-through statement
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+                  Fall-through statement
+
+
Index: src/Tests/Expect-v/Tuple.txt
===================================================================
--- src/Tests/Expect-v/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,670 @@
+f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+struct inner
+    with members
+      f2: signed int 
+      f3: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct inner 
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct inner 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct inner 
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct inner 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct inner 
+
+
+
+struct outer
+    with members
+      f1: signed int 
+      i: instance of struct inner 
+      f4: double 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct outer 
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct outer 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of struct inner 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct outer 
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct outer 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f4: double 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct outer 
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct outer 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct outer 
+
+
+
+s: instance of struct outer 
+sp: pointer to instance of struct outer 
+t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+t2: static const tuple of types
+    signed int 
+    const signed int 
+
+t3: static const tuple of types
+    signed int 
+    const signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      rc: signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      signed int 
+
+f1: function
+    with parameters
+      w: signed int 
+    returning 
+      x: short signed int 
+      y: unsigned int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: y
+
+                                          Name: x
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: x
+
+                                                  Name: y
+
+                    Tuple:
+                                              Name: w
+
+                      constant expression 23 signed int 
+
+
+g1: function
+    returning 
+      r: tuple of types
+          signed int 
+          char 
+          long signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+        Declaration of x: short signed int 
+        Declaration of p: short signed int 
+        Declaration of y: unsigned int 
+        Declaration of z: tuple of types
+            signed int 
+            signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Tuple:
+                                      Name: p
+
+                                      Applying untyped: 
+                        Name: f
+                    ...to: 
+constant expression 17 signed int 
+                  constant expression 3 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Cast of:
+                  Tuple:
+                                          Name: p
+
+                                          Applying untyped: 
+                          Name: f
+                      ...to: 
+constant expression 17 signed int 
+                    constant expression 3 signed int 
+
+                to:
+                  short signed int 
+                  unsigned int 
+                  tuple of types
+                      signed int 
+                      signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: r
+                Tuple:
+                                      Name: x
+
+                                      Name: y
+
+                                      Name: z
+
+
+
+main: C function
+    with parameters
+      argc: signed int 
+      argv: pointer to pointer to char 
+    returning 
+      rc: signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of b: signed int 
+        Declaration of c: signed int 
+        Declaration of d: signed int 
+        Declaration of t: instance of struct outer with initializer 
+          Compound initializer:  
+            Simple Initializer:               Tuple:
+                                  Name: 1
+
+                constant expression 7.0 double 
+
+              designated by:                 Name: f1
+                Name: f4
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: t1
+constant expression 3 signed int 
+                  Expression Statement:
+            Tuple:
+
+                  Expression Statement:
+            Tuple:
+              constant expression 3 signed int 
+              constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Tuple:
+                  constant expression 4.6 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Tuple:
+                      constant expression 3 signed int 
+                      constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                                          Tuple:
+                                                  Name: c
+
+
+                Tuple:
+                  constant expression 2 signed int 
+                                      Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?>?
+                        ...to: 
+constant expression 3 signed int constant expression 4 signed int                         Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Tuple:
+                                          Name: b
+
+                    constant expression 6 signed int 
+                Second alternative:
+                  Tuple:
+                    constant expression 7 signed int 
+                    constant expression 8 signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Tuple:
+                                      Name: a
+
+                                      Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t2
+                    Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: d
+                        Applying untyped: 
+                            Name: ?+=?
+                        ...to: 
+                            Address of:
+                              Name: c
+                            Name: 1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Tuple:
+                                              Name: c
+
+                                              Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: t2
+                        Tuple:
+                                                      Name: c
+
+                                                      Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                        constant expression 3 signed int 
+                        constant expression 4 signed int 
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Tuple:
+                            constant expression 3 signed int 
+                            constant expression 4 signed int 
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: t1
+                            Tuple:
+                              constant expression 3 signed int 
+                              constant expression 4 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Tuple:
+                  constant expression 11 signed int 
+                  constant expression 12 signed int 
+                  constant expression 13 signed int 
+                  constant expression 3.14159 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: sp
+                Name: sp
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: printf
+            ...to: 
+constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int                 Name: s
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: rc
+                Name: 0
+
+
Index: src/Tests/Expect-v/TypeGenerator.txt
===================================================================
--- src/Tests/Expect-v/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,409 @@
+context addable
+    with parameters
+      T: type
+
+    with members
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+struct __anonymous0
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    data: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    next: pointer to instance of type List1 (not function type) 
+                    with parameters
+                      instance of type T (not function type) 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+List1: type for pointer to instance of struct __anonymous0 
+  with parameters
+    T: type
+      with assertions
+        instance of context addable 
+          with parameters
+            instance of type T (not function type) 
+
+
+
+  with assertions
+    instance of context addable 
+      with parameters
+        instance of type T (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+li: instance of type List1 (not function type) 
+  with parameters
+    signed int 
+
+f: function
+    with parameters
+      g: pointer to function
+          with parameters
+            signed int 
+          returning 
+            instance of type List1 (not function type) 
+              with parameters
+                signed int 
+
+
+    returning 
+      signed int 
+
+h: function
+    with parameters
+      p: pointer to instance of type List1 (not function type) 
+        with parameters
+          signed int 
+
+    returning 
+      signed int 
+
+struct S1
+    with parameters
+      T: type
+
+struct S1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S1 
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct S1 
+
+
+
+v1: instance of struct S1 
+  with parameters
+    signed int 
+
+p: pointer to instance of struct S1 
+  with parameters
+    signed int 
+
+struct S2
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S2 
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct S2 
+
+
+
+v2: instance of struct S2 
+  with parameters
+    signed int 
+
+struct __anonymous1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+v2: instance of struct __anonymous1 
+  with parameters
+    signed int 
+
+struct node
+    with parameters
+      T: type
+        with assertions
+          instance of context addable 
+            with parameters
+              instance of type T (not function type) 
+
+
+
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    data: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct node 
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct node 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    next: pointer to instance of struct node 
+                    with parameters
+                      instance of type T (not function type) 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct node 
+                Member Expression, with field: 
+                  next: pointer to instance of struct node 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct node 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct node 
+
+
+
+List: type for pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+  with parameters
+    T: type
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type List (not function type) 
+      _src: instance of type List (not function type) 
+    returning 
+      instance of type List (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List (not function type) 
+
+    to:
+      pointer to pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+    Cast of:
+      Variable Expression: _src: instance of type List (not function type) 
+
+    to:
+      pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+
+
+my_list: instance of type List (not function type) 
+  with parameters
+    signed int 
+
+Complex: type
+  with assertions
+    instance of context addable 
+      with parameters
+        instance of type Complex (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type Complex (not function type) 
+      _src: instance of type Complex (not function type) 
+    returning 
+      instance of type Complex (not function type) 
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Cast of:
+              Name: my_list
+
+            to:
+              instance of struct node 
+                with parameters
+                  signed int 
+
+
+
Index: src/Tests/Expect-v/Typedef.txt
===================================================================
--- src/Tests/Expect-v/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,86 @@
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of T: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: T
+            ...to: 
+constant expression 3 signed int 
+
+struct __anonymous0
+    with members
+      T: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    T: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+fred: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+b: pointer to function
+    with parameters
+      signed int 
+      char 
+    returning 
+      signed int 
+
+g: function
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: double 
+
+c: pointer to function
+    with parameters
+      signed int 
+      char 
+    returning 
+      signed int 
+
+p: type-of expression constant expression 3 signed int 
+q: type-of expression constant expression 3 signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of w: type-of expression constant expression 3 signed int 
+        Declaration of x: type-of expression constant expression 3 signed int 
+
+array: array of pointer to signed int with dimension of constant expression 10 signed int 
Index: src/Tests/Expect-v/TypedefDeclarator.txt
===================================================================
--- src/Tests/Expect-v/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,185 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Expect-v/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Expect-v/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,262 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Expect-v/Typeof.txt
===================================================================
--- src/Tests/Expect-v/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of v1: pointer to signed int 
+        Declaration of v2: type-of expression           Name: v1
+
+        Declaration of v3: array of type-of expression           Applying untyped: 
+              Name: *?
+          ...to: 
+              Name: v1
+with dimension of constant expression 4 signed int 
+        Declaration of v4: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v5: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v6: pointer to signed int 
+        Declaration of v7: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+        Declaration of v8: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+
Index: src/Tests/Expect-v/VariableDeclarator.txt
===================================================================
--- src/Tests/Expect-v/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,253 @@
+f1: signed int 
+f2: signed int 
+f3: pointer to signed int 
+f4: pointer to pointer to signed int 
+f5: pointer to const pointer to signed int 
+f6: const pointer to const pointer to signed int 
+f7: pointer to signed int 
+f8: pointer to pointer to signed int 
+f9: pointer to const pointer to signed int 
+f10: const pointer to const pointer to signed int 
+f11: pointer to signed int 
+f12: pointer to pointer to signed int 
+f13: pointer to const pointer to signed int 
+f14: const pointer to const pointer to signed int 
+f15: open array of signed int 
+f16: array of signed int with dimension of constant expression 10 signed int 
+f17: open array of signed int 
+f18: array of signed int with dimension of constant expression 10 signed int 
+f19: open array of pointer to signed int 
+f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+f21: open array of pointer to pointer to signed int 
+f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f23: open array of pointer to const pointer to signed int 
+f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f25: open array of const pointer to const pointer to signed int 
+f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f27: open array of pointer to signed int 
+f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+f29: open array of pointer to pointer to signed int 
+f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f31: open array of pointer to const pointer to signed int 
+f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f33: open array of const pointer to const pointer to signed int 
+f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f35: pointer to open array of signed int 
+f36: pointer to array of signed int with dimension of constant expression 10 signed int 
+f37: pointer to pointer to open array of signed int 
+f38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+f39: pointer to const pointer to open array of signed int 
+f40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f41: const pointer to const pointer to open array of signed int 
+f42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f43: open array of array of signed int with dimension of constant expression 3 signed int 
+f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f45: open array of array of signed int with dimension of constant expression 3 signed int 
+f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f47: open array of array of signed int with dimension of constant expression 3 signed int 
+f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f69: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f71: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f72: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f73: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f74: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f75: pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f76: pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f77: pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f78: const pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f79: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f80: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f81: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      const pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+cf3: pointer to signed int 
+cf4: pointer to pointer to signed int 
+cf5: pointer to const pointer to signed int 
+cf6: const pointer to const pointer to signed int 
+cf15: open array of signed int 
+cf16: array of signed int with dimension of constant expression 10 signed int 
+cf19: open array of pointer to signed int 
+cf20: array of pointer to signed int with dimension of constant expression 10 signed int 
+cf21: open array of pointer to pointer to signed int 
+cf22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+cf23: open array of pointer to const pointer to signed int 
+cf24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf25: open array of const pointer to const pointer to signed int 
+cf26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf35: pointer to open array of signed int 
+cf36: pointer to array of signed int with dimension of constant expression 10 signed int 
+cf37: pointer to pointer to open array of signed int 
+cf38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+cf39: pointer to const pointer to open array of signed int 
+cf40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf41: const pointer to const pointer to open array of signed int 
+cf42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf43: open array of array of signed int with dimension of constant expression 3 signed int 
+cf44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+cf50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+cf52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf53: open array of array of const pointer to signed int with dimension of constant expression 3 signed int 
+cf54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+cf56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+cf68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+cf69: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to pointer to signed int 
+
+cf70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+v3: pointer to open array of pointer to open array of pointer to function
+    with parameters
+      pointer to open array of pointer to open array of signed int 
+      pointer to open array of pointer to open array of signed int 
+    returning 
+      pointer to open array of pointer to open array of signed int 
+
Index: src/Tests/Expect-v/gcc900407-1.txt
===================================================================
--- src/Tests/Expect-v/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,71 @@
+foo: function
+    with parameters
+      a: signed int 
+      b: signed int 
+      p: pointer to signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: a
+constant expression 0x1000 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: c
+                Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: b
+constant expression 0xffff0000 unsigned int 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?+?
+                        ...to: 
+                            Name: b
+constant expression 0xffff0000 unsigned int constant expression 2 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?++
+                ...to: 
+                    Address of:
+                      Name: c
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Name: c
+
+
Index: src/Tests/Expect-v/gcc900516-1.txt
===================================================================
--- src/Tests/Expect-v/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+f: function
+    with parameters
+      c: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: !?
+...to: 
+    Conditional expression on: 
+      Cast of:
+        Applying untyped: 
+            Name: ?!=?
+        ...to: 
+            Name: c
+            Name: 0
+
+      to:
+        signed int 
+    First alternative:
+constant expression 2.0 double     Second alternative:
+constant expression 1.0 double 
+
+
+
Index: src/Tests/Expect-v/gcc920301-1.txt
===================================================================
--- src/Tests/Expect-v/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+f: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of t: static open array of pointer to void 
+                  Null Statement
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: static array of unsigned int with dimension of constant expression 5 signed int 
+
Index: src/Tests/Expect-v/gcc920409-1.txt
===================================================================
--- src/Tests/Expect-v/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: y
+constant expression 0.0 double                     Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: y
+            Second alternative:
+              Applying untyped: 
+                  Name: ?-?
+              ...to: 
+                  Name: y
+                  Name: 1
+
+
+
Index: src/Tests/Expect-v/gcc920409-2.txt
===================================================================
--- src/Tests/Expect-v/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,90 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of x1: signed int 
+        Declaration of x2: signed int 
+        Declaration of v: double 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Cast of:
+                          Applying untyped: 
+                              Name: ?-?
+                          ...to: 
+                              Name: x1
+                              Name: x2
+
+                        to:
+                          long signed int 
+                        Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Return Statement, returning: Applying untyped: 
+    Name: -?
+...to: 
+constant expression 1.0 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: t
+                ...to: 
+                    Name: v
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: y
+                ...to: 
+                    Name: 1
+                    Conditional expression on: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: v
+constant expression 0.0 double                             Name: 0
+
+                      to:
+                        signed int 
+                    First alternative:
+                      Cast of:
+                        Name: v
+
+                      to:
+                        signed int 
+                    Second alternative:
+                      Applying untyped: 
+                          Name: ?-?
+                      ...to: 
+                          Cast of:
+                            Name: v
+
+                          to:
+                            signed int 
+                          Name: 1
+
+
+
Index: src/Tests/Expect-v/gcc920410-2.txt
===================================================================
--- src/Tests/Expect-v/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+joe: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of j: signed int 
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+
+
Index: src/Tests/Expect-v/gcc920501-1.txt
===================================================================
--- src/Tests/Expect-v/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+a: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of b: open array of pointer to pointer to signed int with initializer 
+          Compound initializer:  
+            Simple Initializer:               Applying untyped: 
+                  Name: LabAddress
+              ...to: 
+                  Name: c
+
+                  Null Statement
+
+
Index: src/Tests/Expect-v/gcc920501-11.txt
===================================================================
--- src/Tests/Expect-v/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Expect-v/gcc920501-19.txt
===================================================================
--- src/Tests/Expect-v/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expect-v/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+x: long long signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+
Index: src/Tests/Expression.c
===================================================================
--- src/Tests/Expression.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Expression.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,67 @@
+int fred() {
+    struct s { int i; } *p;
+    int i;
+
+    // order of evaluation (GCC is different)
+/*
+    i = sizeof( (int) {3} );
+    i = sizeof (int) {3};
+*/
+    // operators
+
+    ! i;
+    ~i;
+    +i;
+    -i;
+    *p;
+    ++p;
+    --p;
+    p++;
+    p--;
+
+    i+i;
+    i-i;
+    i*i;
+
+    i/i;
+    i%i;
+    i^i;
+    i&i;
+    i|i;
+    i<i;
+    i>i;
+    i=i;
+
+    i==i;
+    i!=i;
+    i<<i;
+    i>>i;
+    i<=i;
+    i>=i;
+    i&&i;
+    i||i;
+    p->i;
+    i+=i;
+    i-=i;
+    i*=i;
+    i/=i;
+    i%=i;
+    i&=i;
+    i|=i;
+    i^=i;
+    i<<=i;
+    i>>=i;
+
+    i?i:i;
+
+    // cast
+/*
+    double d;
+    int *ip;
+    (int *) i;
+    (* int) i;
+    ([char, int *])[d, d];
+    [i,ip,ip] = ([int, * int, int *])[1,(void *)2,(void *)3];
+    [i,ip,ip] = ([int, * int, int *])([1,(void *)2,(void *)3]);
+*/
+}
Index: src/Tests/Forall.c
===================================================================
--- src/Tests/Forall.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Forall.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,98 @@
+int ?=?( int*, int );
+float ?=?( float*, float );
+int * ?=?( int **, int * );
+float * ?=?( float **, float * );
+char ?=?( char*, char );
+void (* ?=?( void (**)(void), void (*)(void) ))(void);
+
+void g1() {
+	forall( type T ) T f( T );
+	void f( int );
+	void h( void (*p)(void) );
+  
+	int x;
+	void (*y)(void);
+	char z;
+	float w;
+  
+	f( x );
+	f( y );
+	f( z );
+	f( w );
+	h( f( y ) );
+}
+
+void g2() {
+	forall( type T ) void f( T, T );
+	forall( type T, type U ) void f( T, U );
+  
+	int x;
+	float y;
+	int *z;
+	float *w;
+  
+	f( x, y );
+	f( z, w );
+	f( x, z );
+}
+
+typedef forall ( type T ) int (*f)( int );
+
+forall( type T )
+void swap( T left, T right ) {
+	T temp = left;
+	left = right;
+	right = temp;
+}
+
+context sumable( type T ) {
+	const T 0;
+	T ?+?(T, T);
+	T ?++(T);
+	[T] ?+=?(T,T);
+};
+
+type T1 | { const T1 0; T1 ?+?(T1, T1); T1 ?++(T1); [T1] ?+=?(T1,T1); },
+	T2(type P1, type P2 ),
+	T3 | sumable(T3);
+
+type T2(type P1, type P2) | sumable(T2(P1,P2)) = struct { P1 i; P2 j; };
+
+T2(int, int) w1;
+typedef T2(int, int) w2;
+w2 g2;
+type w3 = T2(int, int);
+w3 g3;
+
+forall( type T | sumable( T ) )
+T sum( int n, T a[] ) {
+	T total = 0;
+	int i;
+	for ( i = 0; i < n; i += 1 )
+		total = total + a[i];
+	return total;
+}
+
+forall( type T | { const T 0; T ?+?(T, T); T ?++(T); [T] ?+=?(T,T); } )
+T twice( T t ) {
+	return t + t;
+}
+
+forall( type T | { const T 0; int ?!=?(T, T); int ?<?(T, T); } )
+T min( T t1, T t2 ) {
+	return t1 < t2 ? t1 : t2;
+}
+
+int main() {
+	int x = 1, y = 2, a[10];
+	float f;
+
+	swap( x, y );
+	twice( x );
+	f = min( 4.0, 3.0 );
+	sum( 10, a );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Function.c
===================================================================
--- src/Tests/Function.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Function.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+int a;
+float a;
+int f( int );
+float f( float );
+
+void g() {
+	// selects the same f each time but without a cast would be ambiguous
+	f( (int)a );
+	(int)f( a );
+}
+
+[ int ] p;
+[ int, double ] p;
+[ int, int, int ] p;
+[ int, int, int, int ] p;
+
+[ char ] q;
+[ int, int ] q;
+[ int, int, float ] q;
+[ int, int, int, int ] q;
+
+[ int, int ] r( int, int, int, int );
+
+void s() {
+	r( p, q );
+	r( [ q, p ] );
+	r( r( p, q ), r( q, q ) );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Functions.c
===================================================================
--- src/Tests/Functions.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Functions.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,167 @@
+// ANSI function definitions
+
+void h(void) {}
+
+int f (
+	int (void),
+	int (int),
+	int ((void)),
+	int ((int)),
+	void g(void)
+	) {
+	(*g)();
+	g();
+	g = h;
+}
+
+int f1() {}
+int (f2()) {}
+int (*f3())() {}
+int *((f4())) {}
+int ((*f5()))() {}
+int *f6() {}
+int *(f7)() {}
+int **f8() {}
+int * const *(f9)() {}
+int (*f10())[] {}
+int (*f11())[][3] {}
+int ((*f12())[])[3] {}
+
+// "implicit int" type specifier (not ANSI)
+
+fII1( int i ) {}
+const fII2( int i ) {}
+extern fII3( int i ) {}
+extern const fII4( int i ) {}
+
+*fII5() {}
+const *fII6() {}
+const long *fII7() {}
+static const long *fII8() {}
+const static long *fII9() {}
+
+// K&R function definitions
+
+fO1( i ) int i; {}
+int fO2( i ) int i; {}
+const fO3( i ) int i; {}
+extern fO4( i ) int i; {}
+extern const fO5( i ) int i; {}
+
+// Cforall extensions
+
+[] f( );
+[int] f( );
+[] f(int);
+[int] f(int);
+[] f( ) {}
+[int] f( ) {}
+[] f(int) {}
+[int] f(int) {}
+
+[int x] f( );
+[] f(int x);
+[int x] f(int x);
+[int x] f( ) {}
+[] f(int x) {}
+[int x] f(int x) {}
+
+[int, int x] f( );
+[] f(int, int x);
+[int, int x] f(int, int x);
+[int, int x] f( ) {}
+[] f(int, int x) {}
+[int, int x] f(int, int x) {}
+
+[int, int x, int] f( );
+[] f(int, int x, int);
+[int, int x, int] f(int, int x, int);
+[int, int x, int] f( ) {}
+[] f(int, int x, int) {}
+[int, int x, int] f(int, int x, int) {}
+
+[int, int x, * int y] f( );
+[] f(int, int x, * int y);
+[int, int x, * int y] f(int, int x, * int y);
+[int, int x, * int y] f( ) {}
+[] f(int, int x, * int y) {}
+[int, int x, * int y] f(int, int x, * int y) {}
+
+[ int ] f11( int ), f12;  // => int f11( int ), f12( int );
+
+[int] f(
+	int ( int, int p ),
+	[int](int)
+	) {
+	int (*(*p)[][10])[][3];
+	* [][10] * [][3] int p;
+	* [] * [int](int) p;
+}
+
+static const int *f1() {}
+static [ const int ] f2() {}
+static inline [ const * int ] f3() {}
+static inline [ const [ * int, int ] ] f4() {}
+static [ const [ * int, const int ] ] f5() {}
+
+// unnamed parameter
+
+int f(
+	int (),
+
+	int *(),
+	int **(),
+	int * const *(),
+	int * const * const (),
+
+	int ([]),
+	int ([10]),
+
+	int *([]),
+	int *([10]),
+	int **([]),
+	int **([10]),
+	int * const *([]),
+	int * const *([10]),
+	int * const * const ([]),
+	int * const * const ([10])
+	);
+
+int f(
+	int (),
+
+	int *(),
+	int **(),
+	int * const *(),
+	int * const * const (),
+
+	int ([]),
+	int ([10]),
+
+	int *([]),
+	int *([10]),
+	int **([]),
+	int **([10]),
+	int * const *([]),
+	int * const *([10]),
+	int * const * const ([]),
+	int * const * const ([10])
+	) {
+}
+
+typedef int T;
+
+int f( T (*f), T t ) {
+	T (T);
+}
+
+// errors
+
+//int f()[] {}
+//int (f[])() {}
+//int f[]() {}
+//int ((*f15())())[] {}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/GccExtensions.c
===================================================================
--- src/Tests/GccExtensions.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/GccExtensions.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,48 @@
+int fred() {
+    asm( "nop" );
+    __asm( "nop" );
+    __asm__( "nop" );
+
+    __complex__ c1;
+    _Complex c2;
+
+    const int i1;
+    __const int i2;
+    __const__ int i3;
+
+    __extension__ const int ex;
+
+    __inline int f1();
+    __inline__ int f2();
+
+    __signed s1;
+    __signed s2;
+
+    __typeof(s1) t1;
+    __typeof__(s1) t2;
+
+    __volatile int v1;
+    __volatile__ int v2;
+
+    __attribute__(()) int a1;
+    const __attribute(()) int a2;
+    const static __attribute(()) int a3;
+    const static int __attribute(()) a4;
+    const static int a5 __attribute(());
+    const static int a6, __attribute(()) a7;
+
+    int * __attribute(()) p1;
+    int (* __attribute(()) p2);
+//    int (__attribute(()) (p3));
+//    int ( __attribute(()) (* __attribute(()) p4));
+
+    struct __attribute(()) s1;
+    struct __attribute(()) s2 { int i; };
+    struct __attribute(()) s3 { int i; } x1, __attribute(()) y1;
+    struct __attribute(()) s4 { int i; } x2, y2 __attribute(());
+
+    int m1 [10] __attribute(());
+    int m2 [10][10] __attribute(());
+    int __attribute(()) m3 [10][10];
+//    int ( __attribute(()) m4 [10] )[10];
+}
Index: src/Tests/IdentFuncDeclarator.c
===================================================================
--- src/Tests/IdentFuncDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/IdentFuncDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,109 @@
+int main() {
+	//int f0[]();
+	//int (f0[])();
+	//int f0()[];
+	//int f0()();
+	//int (*f0)()();
+	//int ((*f0())())[];
+	
+	int f1;
+	int (f2);
+
+	int *f3;
+	int **f4;
+	int * const *f5;
+	int * const * const f6;
+
+	int *(f7);
+	int **(f8);
+	int * const *(f9);
+	int * const * const (f10);
+
+	int (*f11);
+	int (**f12);
+	int (* const *f13);
+	int (* const * const f14);
+
+	int f15[];
+	int f16[10];
+	int (f17[]);
+	int (f18[10]);
+
+	int *f19[];
+	int *f20[10];
+	int **f21[];
+	int **f22[10];
+	int * const *f23[];
+	int * const *f24[10];
+	int * const * const f25[];
+	int * const * const f26[10];
+
+	int *(f27[]);
+	int *(f28[10]);
+	int **(f29[]);
+	int **(f30[10]);
+	int * const *(f31[]);
+	int * const *(f32[10]);
+	int * const * const (f33[]);
+	int * const * const (f34[10]);
+
+	int (*f35[]);
+	int (*f36[10]);
+	int (**f37[]);
+	int (**f38[10]);
+	int (* const *f39[]);
+	int (* const *f40[10]);
+	int (* const * const f41[]);
+	int (* const * const f42[10]);
+
+	int f43[][3];
+	int f44[3][3];
+	int (f45[])[3];
+	int (f46[3])[3];
+	int ((f47[]))[3];
+	int ((f48[3]))[3];
+
+	int *f49[][3];
+	int *f50[3][3];
+	int **f51[][3];
+	int **f52[3][3];
+	int * const *f53[][3];
+	int * const *f54[3][3];
+	int * const * const f55[][3];
+	int * const * const f56[3][3];
+
+	int (*f57[][3]);
+	int (*f58[3][3]);
+	int (**f59[][3]);
+	int (**f60[3][3]);
+	int (* const *f61[][3]);
+	int (* const *f62[3][3]);
+	int (* const * const f63[][3]);
+	int (* const * const f64[3][3]);
+
+	int f65(int);
+	int (f66)(int);
+
+	int *f67(int);
+	int **f68(int);
+	int * const *f69(int);
+	int * const * const f70(int);
+
+	int *(f71)(int);
+	int **(f72)(int);
+	int * const *(f73)(int);
+	int * const * const (f74)(int);
+
+	int (*f75)(int);
+	int (**f76)(int);
+	int (* const *f77)(int);
+	int (* const * const f78)(int);
+
+	int (*(*f79)(int))();
+	int (*(* const f80)(int))();
+	int (* const(* const f81)(int))();
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/IdentFuncParamDeclarator.c
===================================================================
--- src/Tests/IdentFuncParamDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/IdentFuncParamDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,154 @@
+int fred(
+	//int f0[](),
+	//int (f0[])(),
+	//int f0()[],
+	//int f0()(),
+	//int (*f0)()(),
+	//int ((*f0())())[],
+	
+	int f1,
+	int (f2),
+
+	int *f3,
+	int **f4,
+	int * const *f5,
+	int * const * const f6,
+
+	int *(f7),
+	int **(f8),
+	int * const *(f9),
+	int * const * const (f10),
+
+	int (*f11),
+	int (**f12),
+	int (* const *f13),
+	int (* const * const f14),
+
+	int f15[],
+	int f16[10],
+	int (f17[]),
+	int (f18[10]),
+
+	int *f19[],
+	int *f20[10],
+	int **f21[],
+	int **f22[10],
+	int * const *f23[],
+	int * const *f24[10],
+	int * const * const f25[],
+	int * const * const f26[10],
+
+	int *(f27[]),
+	int *(f28[10]),
+	int **(f29[]),
+	int **(f30[10]),
+	int * const *(f31[]),
+	int * const *(f32[10]),
+	int * const * const (f33[]),
+	int * const * const (f34[10]),
+
+	int (*f35[]),
+	int (*f36[10]),
+	int (**f37[]),
+	int (**f38[10]),
+	int (* const *f39[]),
+	int (* const *f40[10]),
+	int (* const * const f41[]),
+	int (* const * const f42[10]),
+
+	int f43[][3],
+	int f44[3][3],
+	int (f45[])[3],
+	int (f46[3])[3],
+	int ((f47[]))[3],
+	int ((f48[3]))[3],
+
+	int *f49[][3],
+	int *f50[3][3],
+	int **f51[][3],
+	int **f52[3][3],
+	int * const *f53[][3],
+	int * const *f54[3][3],
+	int * const * const f55[][3],
+	int * const * const f56[3][3],
+
+	int (*f57[][3]),
+	int (*f58[3][3]),
+	int (**f59[][3]),
+	int (**f60[3][3]),
+	int (* const *f61[][3]),
+	int (* const *f62[3][3]),
+	int (* const * const f63[][3]),
+	int (* const * const f64[3][3]),
+
+	int f65(int),
+	int (f66)(int),
+
+	int *f67(int),
+	int **f68(int),
+	int * const *f69(int),
+	int * const * const f70(int),
+
+	int *(f71)(int),
+	int **(f72)(int),
+	int * const *(f73)(int),
+	int * const * const (f74)(int),
+
+	int (*f75)(int),
+	int (**f76)(int),
+	int (* const *f77)(int),
+	int (* const * const f78)(int),
+
+	int (*(*f79)(int))(),
+	int (*(* const f80)(int))(),
+	int (* const(* const f81)(int))(),
+
+	int f82[const *],
+	int f83[const 3],
+	int f84[static 3],
+	int f85[static const 3],
+
+	int (f86[const *]),
+	int (f87[const 3]),
+	int (f88[static 3]),
+	int (f89[static const 3]),
+
+	int *f90[const *],
+	int *f91[const 3],
+	int **f92[static 3],
+	int * const *f93[static const 3],
+	int * const * const f94[static const 3],
+
+	int *(f95[const *]),
+	int *(f96[const 3]),
+	int **(f97[static 3]),
+	int * const *(f98[static const 3]),
+	int * const * const (f99[static const 3]),
+
+	int f100[const *][3],
+	int f101[const 3][3],
+	int f102[static 3][3],
+	int f103[static const 3][3],
+
+	int (f104[const *][3]),
+	int (f105[const 3][3]),
+	int (f106[static 3][3]),
+	int (f107[static const 3][3]),
+
+	int *f108[const *][3],
+	int *f109[const 3][3],
+	int **f110[static 3][3],
+	int * const *f111[static const 3][3],
+	int * const * const f112[static const 3][3],
+
+	int *(f113[const *][3]),
+	int *(f114[const 3][3]),
+	int **(f115[static 3][3]),
+	int * const *(f116[static const 3][3]),
+	int * const * const (f117[static const 3][3])
+	) {
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/InferParam.c
===================================================================
--- src/Tests/InferParam.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/InferParam.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,30 @@
+int ?=?( int*, int );
+float ?=?( float*, float );
+double ?=?( double*, double );
+
+forall( type T, type U | { U f(T); } ) U g(T);
+float f( int );
+double f( int );
+void i( float );
+
+void h() {
+	int a;
+	i( g( a ) );
+}
+
+context has_f_and_j( type T, type U ) {
+	U f( T );
+	U j( T, U );
+};
+
+float j( int, float );
+forall( type T, type U | has_f_and_j( T, U ) ) U k( T );
+
+void l() {
+	int b;
+	i( k( b ) );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Initialization.c
===================================================================
--- src/Tests/Initialization.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Initialization.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,41 @@
+// Cforall extensions
+
+int * x11 = 0, x12 = 0;
+int * x21 = 0, x22 = 0;
+
+[20] int y1, y2 = { 1, 2, 3 };
+
+// designators
+
+struct {
+	[int] w;
+} a = { .w : [2] };
+
+struct { int a[3], b; } w [] = { [0].a : {1}, [0].b : 1, [1].a[0] : 2 };
+
+struct {
+	int f1, f2, f3;
+	struct { int g1, g2, g3; } f4[4];
+} v7 = {
+  .f1 : 4,
+  f2 : 3,
+  .f4[2] : {
+	  .g1 : 3,
+	  g3 : 0,
+	},
+  .f4[3].g3 : 7,
+};
+
+struct point { int x; int z; struct {int y1, y2, y3;} y; int w;};
+struct quintet { int v, w, x, y, z;};
+
+int main() {
+	struct point p1 = { x : 3 };
+	struct point p2 = { 3, 4 };
+	struct point p3 = { .[x,z] : 5, y : { .[y3,y1] : 6, 17 } };
+	struct point p4 = { w : 5, 4 };
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Initialization2.c
===================================================================
--- src/Tests/Initialization2.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Initialization2.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15 @@
+int a = 3;
+struct { int x; int y; } z = { 3, 7 };      /* OK */
+struct { int x; int y; } z1 = { .[x,y]:3 }; /* OK */
+struct { int x; int y; } z2 = { y:3, x:4 }; /* OK */
+struct { int x; struct { int y1; int y2; } y; } z3 = { x:3, y:{y1:4, y2:5} };  /* OK */
+struct { int x; struct { int y1; int y2; } y; } z3 = { y:{y2:9, y1:8}, x:7 };  /* OK */
+struct { int x; struct { int y1; int y2; } y; } z3 = { x:7, {y2:9, y1:8} };  /* OK */
+struct { int x; struct { int y1; int y2; } y; } z3 = { 3, {4, 5} };   /* OK */
+//struct { int x; struct { int y1; int y2; } } z3 = {4, {5,6}};
+//struct { int x; struct { int y1; int y2; } y; } z4 = { y:{4,5}, a:3 };
+//struct { int x; struct { int y1; int y2; } y; } z5 = { a:3, {4,5}};
+//int x[20] = { [10]: 4 };
+struct t { int a, b; };
+struct t x = { b:4, a:3 };
+struct { int x; int y; } z6= {5,6,4};  /* (should be an) error */
Index: src/Tests/LabelledExit.c
===================================================================
--- src/Tests/LabelledExit.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/LabelledExit.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,139 @@
+int main() {
+    int i;
+    int x, y;
+
+    x = 0; y = 0;
+
+// block, labelled exits
+
+  Block: {
+	if ( x == y ) {
+	    for ( ; i < y; ) {
+		y += 1;
+		if ( y < 10 ) break Block;
+	    }
+	}
+    }
+
+// loops, labelled exits
+
+  w1: while ( y == 10 );
+
+  w2: while ( x < 10 ) {
+      while (y < 5 ) {
+	  if ( y == 3 ) break w2;
+      }
+      x += 1;
+  }
+
+  A: for ( i = 0; i < 10; i += 1 ) {
+    B: for ( i = 0; i < 10; i += 1 ) {
+      C: for ( i = 0; i < 10; i += 1 ) {
+	  goto A;
+	  goto B;
+	  goto C;
+	  continue A;
+	  continue B;
+	  continue C;
+	  continue;
+	  break A;
+	  break B;
+	  break C;
+	  break;
+      }
+    }
+  }
+
+  D: for ( ;; ) {
+      break D;
+      continue D;
+  }
+
+    Z : i += 1;
+    goto Z;
+  X: Y: for ( ;; ) {
+      i += 1;
+      if ( i > 5 ) continue X;
+      if ( i < 5 ) break X;
+      if ( i < 5 ) break Y;
+      break;
+  }
+  XX: for ( ;; ) {
+    YY: for ( ;; ) {
+      ZZ: for ( ;; ) {
+	  i += 1;
+	  if ( i > 5 ) continue XX;
+	  if ( i < 5 ) continue YY;
+	  if ( i < 5 ) continue ZZ;
+	  if ( i > 5 ) break XX;
+	  if ( i < 5 ) break YY;
+	  if ( i < 5 ) break ZZ;
+	  break;
+      }
+    }
+  }
+
+    for ( ;; ) ;
+    for ( int i = 0 ;; ) ;
+    for (  ; i < 0; ) ;
+    for (  ; ; i += 1 ) ;
+  L0:  L1:  L2:  L3:  L4:  L5:  L6:  L7:  L8:  L9:
+  L10: L11: L12: L13: L14: L15: L16: L17: L18: L19:
+  L20: L21: L22: L23: L24: L25: L26: L27: L28: L29:
+  L31: L32: L33: L34:
+    for ( ;; ) {
+	break L0;
+    }
+
+// switch/choose, labelled exits
+
+  Switch: switch ( i ) {
+    default:
+      i += 1;
+    case 0:
+      i += 1;
+      break Switch;
+    case 1:
+      switch ( i ) {
+	case 0:
+	  break Switch;
+	default:
+	  break;
+      }
+  }
+
+  Choose: choose ( i ) {
+    default:
+      i += 1;
+    case 0:
+      i += 1;
+      break Choose;
+    case 1:
+      choose ( i ) {
+	case 0:
+	  break;
+	default:
+	  break Choose;
+      }
+      fallthru;
+    case 2:
+      i += 1;
+  }
+#if 0
+// computed goto
+
+    {
+	static void *array[] = { &&foo, &&bar, &&hack };
+
+      foo: bar: hack:
+	goto *array[i];
+    }
+#endif
+#if 0
+  Q: if ( i > 5 ) {
+      i += 1;
+      break Q;
+  } else
+      i += 1;
+#endif
+}
Index: src/Tests/Members.c
===================================================================
--- src/Tests/Members.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Members.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,72 @@
+char ?=?( char*, char );
+int ?=?( int*, int );
+float ?=?( float*, float );
+forall( dtype DT ) DT * ?=?( DT**, DT* );
+forall(type T) lvalue T *?( T* );
+char *__builtin_memcpy();
+
+void a( char );
+void b( int );
+void c( int* );
+void d( float* );
+
+struct a_struct {
+	int a;
+	char a;
+	float a;
+};
+
+union b_struct {
+	int *a;
+	char *a;
+	float *a;
+};
+
+void f() {
+	struct a_struct the_struct;
+	union b_struct the_struct;
+  
+	a( the_struct.a );
+	b( the_struct.a );
+	c( the_struct.a );
+	d( the_struct.a );
+}
+
+struct c_struct {
+	int;
+	char;
+	float;
+};
+
+union d_struct {
+	int*;
+	char*;
+	float*;
+};
+
+void g() {
+	unsigned short x;
+	struct c_struct x;
+	union d_struct x;
+  
+	a( x );	// the 'a' and 'b' calls resolve to the ushort
+	b( x );	// it's debatable whether this is good
+	c( x );
+	d( x );
+}
+
+// make sure that forward declarations work
+
+struct forward;
+
+struct forward *q;
+
+struct forward { int y; };
+
+void h() {
+	q->y;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Misc.c
===================================================================
--- src/Tests/Misc.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Misc.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,17 @@
+int a;
+int b;
+float b;
+
+void g( int );
+void g( unsigned );
+
+void f( void ) {
+	g( (a, b) );
+	g( (a, a, b) );
+	g( sizeof a );
+	g( sizeof( int ) );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/MiscError.c
===================================================================
--- src/Tests/MiscError.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/MiscError.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+int a;
+int b;
+float b;
+
+void g( int );
+
+void f( void ) {
+	g( (b, a) );
+	g( (b, a, b) );
+	g( (a, b, b) );
+	sizeof b;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/NamedParmArg.c
===================================================================
--- src/Tests/NamedParmArg.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/NamedParmArg.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+int f1( int i = 3, int *j = 0 ) {}  /* ANSI */
+[int, int ] f2( int i = 3, * int j = 0 ) {}  /* CFA */
+
+int main() {
+    f1();		/* identical calls */
+    f1( 3 );
+    f1( 3, );
+    f1( 3, 0 );
+    f1( 3, j : 0 );
+    f1( j : 0, 3 );
+    f1( i : 3, j : 0 );
+    f1( j : 0, i : 3 );
+    f1( [j, i] : f2() );
+}
Index: src/Tests/NumericConstants.c
===================================================================
--- src/Tests/NumericConstants.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/NumericConstants.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,54 @@
+int main() {
+    1;							/* decimal */
+    2_1;
+    2_147_483_647;
+    37LL;
+    45ull;
+    89llu;
+    99LLu;
+    56_lu;
+    88_LLu;
+
+//    0;							/* octal */
+    0u;
+    0_3_77;
+    0_377_ul;
+
+    0x1;						/* hexadecimal */
+    0x1u;
+    0xabL;
+    0x_80000000;
+    0x_fff;
+    0x_ef3d_aa5c;
+    0x_3LL;
+
+    3.;							/* integral real */
+    3_100.;
+    1_000_000.;
+
+    3.1;						/* integral/fractional real */
+    3.141_592_654L;
+    123_456.123_456;
+
+    3E1;						/* integral/exponent real */
+    3_e1f;
+    3_E1_1_F;
+    3_E_11;
+    3_e_+11;
+    3_E_-11;
+
+    3.0E1;						/* integral/fractional/exponent real */
+    3.0_E1L;
+    3.0_e1_1;
+    3.0_E_11_l;
+    3.0_e_+11l;
+    3.0_E_-11;
+    123_456.123_456E-16;
+
+    0x_ff.ffp0;						/* hex real */
+    0x_1.ffff_ffff_p_128_l;
+}
+
+// Local Variables: //
+// compile-command: "../../../bin/cfa -std=c99 NumericConstants.c" //
+// End: //
Index: src/Tests/OccursError.c
===================================================================
--- src/Tests/OccursError.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/OccursError.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,10 @@
+forall( type T ) void f( void (*)( T, T* ) );
+forall( type U ) void g( U*, U );
+
+void test() {
+    f( g );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Operators.c
===================================================================
--- src/Tests/Operators.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Operators.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,27 @@
+int ?*?( int, int );
+
+int ?()( int number1, int number2 ) {
+	return number1 * number2;
+}
+
+int ?+?( int, int );
+
+int ?=?( int *, int );
+struct accumulator {
+	int total;
+};
+
+char ?()( struct accumulator a, char number1, char number2 );
+
+void f( void ) {
+	char a, b;
+	?()( a, b );
+	a(b);
+	a + b;
+	struct accumulator ?+?;	// why not, eh?
+	a + b;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Output-a/Abstype.txt
===================================================================
--- src/Tests/Output-a/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,99 @@
+T: type
+  with assertions
+    x: function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+
+y: function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of t_instance: instance of type T (not function type) 
+                  Return Statement, returning: Applying untyped: 
+    Name: x
+...to: 
+    Name: t
+
+
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+?++: function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+U: type for pointer to signed int 
+x: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of u_instance: instance of type U (not function type) with initializer 
+          Simple Initializer:             Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Name: u
+
+                  Return Statement, returning: Name: u
+
+
+
+break_abstraction: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: u
+
+
+
Index: src/Tests/Output-a/Array.txt
===================================================================
--- src/Tests/Output-a/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,51 @@
+a1: open array of signed int 
+a2: variable length array of signed int 
+a4: array of double with dimension of constant expression 3.0 double 
+m1: open array of array of signed int with dimension of constant expression 3 signed int 
+m2: variable length array of variable length array of signed int 
+m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+T: typedef for signed int 
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a1: open array of signed int 
+        Declaration of a2: variable length array of signed int 
+        Declaration of a4: array of signed int with dimension of constant expression 3 signed int 
+        Declaration of T: array of signed int with dimension of constant expression 3 signed int 
+
+mary: function
+    with parameters
+      T: array of signed int with dimension of constant expression 3 signed int 
+      p1: const array of signed int with dimension of constant expression 3 signed int 
+      p2: static array of signed int with dimension of constant expression 3 signed int 
+      p3: const static array of signed int with dimension of constant expression 3 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+tom: function
+      accepting unspecified arguments
+    returning 
+      pointer to array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+jane: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+          with parameters
+            T: array of signed int with dimension of constant expression 3 signed int 
+            p1: const array of signed int with dimension of constant expression 3 signed int 
+            p2: static array of signed int with dimension of constant expression 3 signed int 
+            p3: const static array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
Index: src/Tests/Output-a/AsmName.txt
===================================================================
--- src/Tests/Output-a/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,11 @@
+x: auto signed int 
+fred: function
+    with parameters
+      x: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: static signed int 
+        Declaration of z: static pointer to signed int 
+
Index: src/Tests/Output-a/Attributes.txt
===================================================================
--- src/Tests/Output-a/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Output-a/Cast.txt
===================================================================
--- src/Tests/Output-a/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+f: char 
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: char 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+        Declaration of f: short signed int 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    void 
+
+
+                  Expression Statement:
+            Cast of:
+              Tuple:
+                                  Name: f
+
+                                  Name: f
+
+                                  Name: f
+
+
+            to:
+              long signed int 
+              long double 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+
Index: src/Tests/Output-a/CastError.txt
===================================================================
--- src/Tests/Output-a/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+f: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: signed int 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              char 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Output-a/CharStringConstants.txt
===================================================================
--- src/Tests/Output-a/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+constant expression ' ' char 
+                  Expression Statement:
+constant expression 'a' char 
+                  Expression Statement:
+constant expression '"' char 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression '\a' char 
+                  Expression Statement:
+constant expression '\b' char 
+                  Expression Statement:
+constant expression '\e' char 
+                  Expression Statement:
+constant expression '\f' char 
+                  Expression Statement:
+constant expression '\n' char 
+                  Expression Statement:
+constant expression '\r' char 
+                  Expression Statement:
+constant expression '\t' char 
+                  Expression Statement:
+constant expression '\v' char 
+                  Expression Statement:
+constant expression '\'' char 
+                  Expression Statement:
+constant expression '\"' char 
+                  Expression Statement:
+constant expression '\?' char 
+                  Expression Statement:
+constant expression '\\' char 
+                  Expression Statement:
+constant expression '\0' char 
+                  Expression Statement:
+constant expression '\377' char 
+                  Expression Statement:
+constant expression '\xf' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '' char 
+                  Expression Statement:
+constant expression 'aa' char 
+                  Expression Statement:
+constant expression 'a\na' char 
+                  Expression Statement:
+constant expression 'a\0a' char 
+                  Expression Statement:
+constant expression '\xfff' char 
+                  Expression Statement:
+constant expression '_\377_' char 
+                  Expression Statement:
+constant expression '_\xff_' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression 'a\xff34w' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression " " array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "a" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "'" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression "\a" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\b" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\e" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\f" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\n" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\r" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\t" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\v" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\'" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\"" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\?" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\\" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\0" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\377" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xf" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "" array of char with dimension of constant expression 3 unsigned int 
+                  Expression Statement:
+constant expression "aa" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "a\na" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int 
+                  Expression Statement:
+constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+
Index: src/Tests/Output-a/CommentMisc.txt
===================================================================
--- src/Tests/Output-a/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+i: signed int 
+i: signed int 
+i: signed int 
+i: signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: array of signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Output-a/Constant0-1.txt
===================================================================
--- src/Tests/Output-a/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,88 @@
+0: signed int 
+0: const signed int 
+0: static const signed int 
+1: signed int 
+1: const signed int 
+1: static const signed int 
+0: signed int 
+1: signed int 
+0: const signed int 
+1: const signed int 
+0: signed int 
+1: signed int 
+0: signed int 
+1: signed int 
+0: static const signed int 
+1: static const signed int 
+struct __anonymous0
+    with members
+      i: signed int 
+
+0: instance of struct __anonymous0 
+struct __anonymous1
+    with members
+      i: signed int 
+
+1: const instance of struct __anonymous1 
+struct __anonymous2
+    with members
+      i: signed int 
+
+1: static const instance of struct __anonymous2 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+struct __anonymous3
+    with members
+      i: signed int 
+
+0: pointer to instance of struct __anonymous3 
+x: pointer to signed int 
+0: pointer to signed int 
+x: const pointer to signed int 
+0: const pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+struct __anonymous4
+    with members
+      i: signed int 
+
+0: pointer to instance of struct __anonymous4 
+struct __anonymous5
+    with members
+      i: signed int 
+
+0: const pointer to instance of struct __anonymous5 
+struct __anonymous6
+    with members
+      i: signed int 
+
+0: static const pointer to instance of struct __anonymous6 
+x: static pointer to signed int 
+0: static pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+x: const pointer to pointer to signed int 
+0: const pointer to pointer to signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of 1: signed int 
+        Declaration of 0: pointer to signed int 
+        Declaration of x: pointer to signed int 
+        Declaration of 0: pointer to signed int 
+
Index: src/Tests/Output-a/Context.txt
===================================================================
--- src/Tests/Output-a/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,63 @@
+context has_q
+    with parameters
+      T: type
+
+    with members
+      q: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+f: forall
+      z: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type z (not function type) 
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+          instance of context has_q 
+            with parameters
+              instance of type z (not function type) 
+
+
+    function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of context has_r
+            with parameters
+              T: type
+              U: type
+
+            with members
+              r: function
+                  with parameters
+                    instance of type T (not function type) 
+                    function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+                  returning 
+                    instance of type T (not function type) 
+
+
+        Declaration of x: auto type
+        Declaration of y: auto type
+          with assertions
+            instance of context has_r 
+              with parameters
+                instance of type x (not function type) 
+                instance of type y (not function type) 
+
+
+
Index: src/Tests/Output-a/DeclarationErrors.txt
===================================================================
--- src/Tests/Output-a/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-a/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Output-a/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-a/Enum.txt
===================================================================
--- src/Tests/Output-a/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+enum Colors
+    with members
+      Red: untyped entity 
+      Yellow: untyped entity 
+      Pink: untyped entity 
+      Blue: untyped entity 
+      Purple: untyped entity 
+      Orange: untyped entity 
+      Green: untyped entity 
+
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of enum Fruits
+            with members
+              Apple: untyped entity 
+              Banana: untyped entity 
+              Pear: untyped entity 
+              Mango: untyped entity 
+
+        Declaration of fruit: instance of enum Fruits with initializer 
+          Simple Initializer:             Name: Mango
+
+
Index: src/Tests/Output-a/Exception.txt
===================================================================
--- src/Tests/Output-a/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,60 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int 
+                  Throw Statement, returning: constant expression 3 signed int 
+
+                  Throw Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+constant expression 5 signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+            and handlers: 
+              Catch Statement
+              ... catching
+i: signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?/?
+                    ...to: 
+                        Name: x
+constant expression 4 signed int 
+            and handlers: 
+              Catch Statement
+              ... catching
+signed int 
+              Catch Statement
+              ... catching
+x: signed int 
+              Catch Statement
+              ... catching
+struct __anonymous0
+              Catch Statement
+              ... catching
+x: instance of struct __anonymous1 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous2 
+              Catch Statement
+              ... catching
+pointer to instance of struct __anonymous3 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous4 
+              Catch Statement
+              ... catching
+                  the rest
+
+
Index: src/Tests/Output-a/Expression.txt
===================================================================
--- src/Tests/Output-a/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,336 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of struct s
+            with members
+              i: signed int 
+
+        Declaration of p: pointer to instance of struct s 
+        Declaration of i: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: !?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ~?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: +?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: -?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: --?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?--
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?==?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?!=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Member Expression, with field: i            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: i
+                    Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: i
+            Second alternative:
+              Name: i
+
+
+
Index: src/Tests/Output-a/Forall.txt
===================================================================
--- src/Tests/Output-a/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,603 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to pointer to function
+          with parameters
+            void 
+          returning 
+            void 
+
+      pointer to function
+          with parameters
+            void 
+          returning 
+            void 
+
+    returning 
+      pointer to function
+          with parameters
+            void 
+          returning 
+            void 
+
+
+g1: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of f: function
+            with parameters
+              signed int 
+            returning 
+              void 
+
+        Declaration of h: function
+            with parameters
+              p: pointer to function
+                  with parameters
+                    void 
+                  returning 
+                    void 
+
+            returning 
+              void 
+
+        Declaration of x: signed int 
+        Declaration of y: pointer to function
+            with parameters
+              void 
+            returning 
+              void 
+
+        Declaration of z: char 
+        Declaration of w: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: f
+                ...to: 
+                    Name: y
+
+
+g2: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              void 
+
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              void 
+
+        Declaration of x: signed int 
+        Declaration of y: float 
+        Declaration of z: pointer to signed int 
+        Declaration of w: pointer to float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: z
+
+
+f: typedef for pointer to forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+swap: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of temp: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: left
+                Name: right
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: right
+                Name: temp
+
+
+context sumable
+    with parameters
+      T: type
+
+    with members
+      0: const instance of type T (not function type) 
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?++: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?+=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+T1: type
+  with assertions
+    0: const instance of type T1 (not function type) 
+    ?+?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?++: function
+        with parameters
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?+=?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+
+T2: type
+  with parameters
+    P1: type
+    P2: type
+
+T3: type
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T3 (not function type) 
+
+
+struct __anonymous0
+    with members
+      i: instance of type P1 (not function type) 
+      j: instance of type P2 (not function type) 
+
+T2: type for instance of struct __anonymous0 
+  with parameters
+    P1: type
+    P2: type
+
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T2 (not function type) 
+          with parameters
+            instance of type P1 (not function type) 
+            instance of type P2 (not function type) 
+
+
+
+w1: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+w2: typedef for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g2: instance of type w2 (not function type) 
+w3: type for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g3: instance of type w3 (not function type) 
+sum: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          instance of context sumable 
+            with parameters
+              instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: open array of instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of total: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: 0
+
+        Declaration of i: signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: n
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: total
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Name: total
+                        Applying untyped: 
+                            Name: ?[?]
+                        ...to: 
+                            Name: a
+                            Name: i
+
+
+                  Return Statement, returning: Name: total
+
+
+
+twice: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?+?
+...to: 
+    Name: t
+    Name: t
+
+
+
+min: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Conditional expression on: 
+  Cast of:
+    Applying untyped: 
+        Name: ?!=?
+    ...to: 
+        Applying untyped: 
+            Name: ?<?
+        ...to: 
+            Name: t1
+            Name: t2
+        Name: 0
+
+  to:
+    signed int 
+First alternative:
+  Name: t1
+Second alternative:
+  Name: t2
+
+
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int with initializer 
+          Simple Initializer:             Name: 1
+
+        Declaration of y: signed int with initializer 
+          Simple Initializer: constant expression 2 signed int 
+        Declaration of a: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: swap
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: twice
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: f
+                Applying untyped: 
+                    Name: min
+                ...to: 
+constant expression 4.0 double constant expression 3.0 double 
+                  Expression Statement:
+            Applying untyped: 
+                Name: sum
+            ...to: 
+constant expression 10 signed int                 Name: a
+
+
Index: src/Tests/Output-a/Function.txt
===================================================================
--- src/Tests/Output-a/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,126 @@
+a: signed int 
+a: float 
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+g: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Cast of:
+                  Name: a
+
+                to:
+                  signed int 
+
+                  Expression Statement:
+            Cast of:
+              Applying untyped: 
+                  Name: f
+              ...to: 
+                  Name: a
+
+            to:
+              signed int 
+
+
+p: tuple of types
+    signed int 
+
+p: tuple of types
+    signed int 
+    double 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+q: tuple of types
+    char 
+
+q: tuple of types
+    signed int 
+    signed int 
+
+q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+s: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Name: p
+                Name: q
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Tuple:
+                                      Name: q
+
+                                      Name: p
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: p
+                    Name: q
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: q
+                    Name: q
+
+
Index: src/Tests/Output-a/Functions.txt
===================================================================
--- src/Tests/Output-a/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,690 @@
+h: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      function
+          with parameters
+            void 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            void 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      g: function
+          with parameters
+            void 
+          returning 
+            void 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Applying untyped: 
+                    Name: *?
+                ...to: 
+                    Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: g
+                Name: h
+
+
+f1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f3: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f4: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f5: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f6: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f7: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f8: function
+      accepting unspecified arguments
+    returning 
+      pointer to pointer to signed int 
+    with body 
+      CompoundStmt
+
+f9: function
+      accepting unspecified arguments
+    returning 
+      pointer to const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f10: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+f12: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+fII1: function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII2: function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII3: auto function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII4: auto function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII5: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII6: function
+      accepting unspecified arguments
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII7: function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII8: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII9: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fO1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO3: function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO4: auto function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO5: auto function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      nothing 
+
+f: function
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      x: signed int 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+
+f: function
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f12: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      function
+          with parameters
+            signed int 
+            p: signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+
+f1: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const signed int 
+    with body 
+      CompoundStmt
+
+f2: static function
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+f3: inline static function
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f4: inline static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+
+f5: static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          const signed int 
+
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      open array of signed int 
+      array of signed int with dimension of constant expression 10 signed int 
+      open array of pointer to signed int 
+      array of pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to pointer to signed int 
+      array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to const pointer to signed int 
+      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      open array of const pointer to const pointer to signed int 
+      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      open array of signed int 
+      array of signed int with dimension of constant expression 10 signed int 
+      open array of pointer to signed int 
+      array of pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to pointer to signed int 
+      array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      open array of pointer to const pointer to signed int 
+      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      open array of const pointer to const pointer to signed int 
+      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+T: typedef for signed int 
+f: function
+    with parameters
+      f: pointer to instance of type T (not function type) 
+      t: instance of type T (not function type) 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of T: instance of type T (not function type) 
+
Index: src/Tests/Output-a/GccExtensions.txt
===================================================================
--- src/Tests/Output-a/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,60 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c1: double _Complex 
+        Declaration of c2: double _Complex 
+        Declaration of i1: const signed int 
+        Declaration of i2: const signed int 
+        Declaration of i3: const signed int 
+        Declaration of ex: const signed int 
+        Declaration of f1: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of f2: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of s1: signed int 
+        Declaration of s2: signed int 
+        Declaration of t1: type-of expression           Name: s1
+
+        Declaration of t2: type-of expression           Name: s1
+
+        Declaration of v1: volatile signed int 
+        Declaration of v2: volatile signed int 
+        Declaration of a1: signed int 
+        Declaration of a2: const signed int 
+        Declaration of a3: static const signed int 
+        Declaration of a4: static const signed int 
+        Declaration of a5: static const signed int 
+        Declaration of a6: static const signed int 
+        Declaration of a7: static const signed int 
+        Declaration of p1: pointer to signed int 
+        Declaration of p2: pointer to signed int 
+        Declaration of struct s1
+        Declaration of struct s2
+            with members
+              i: signed int 
+
+        Declaration of struct s3
+            with members
+              i: signed int 
+
+        Declaration of x1: instance of struct s3 
+        Declaration of y1: instance of struct s3 
+        Declaration of struct s4
+            with members
+              i: signed int 
+
+        Declaration of x2: instance of struct s4 
+        Declaration of y2: instance of struct s4 
+        Declaration of m1: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of m2: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+        Declaration of m3: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Output-a/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Output-a/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,185 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Output-a/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Output-a/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,221 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f2: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f7: pointer to signed int 
+      f8: pointer to pointer to signed int 
+      f9: pointer to const pointer to signed int 
+      f10: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: open array of signed int 
+      f16: array of signed int with dimension of constant expression 10 signed int 
+      f17: open array of signed int 
+      f18: array of signed int with dimension of constant expression 10 signed int 
+      f19: open array of pointer to signed int 
+      f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f21: open array of pointer to pointer to signed int 
+      f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f23: open array of pointer to const pointer to signed int 
+      f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f25: open array of const pointer to const pointer to signed int 
+      f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f27: open array of pointer to signed int 
+      f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f29: open array of pointer to pointer to signed int 
+      f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f31: open array of pointer to const pointer to signed int 
+      f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f33: open array of const pointer to const pointer to signed int 
+      f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f35: open array of pointer to signed int 
+      f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f37: open array of pointer to pointer to signed int 
+      f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f39: open array of pointer to const pointer to signed int 
+      f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f41: open array of const pointer to const pointer to signed int 
+      f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f43: open array of array of signed int with dimension of constant expression 3 signed int 
+      f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f45: open array of array of signed int with dimension of constant expression 3 signed int 
+      f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f47: open array of array of signed int with dimension of constant expression 3 signed int 
+      f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f65: function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f66: function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f71: function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f72: function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f73: function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f74: function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const variable length array of signed int 
+      f83: const array of signed int with dimension of constant expression 3 signed int 
+      f84: static array of signed int with dimension of constant expression 3 signed int 
+      f85: const static array of signed int with dimension of constant expression 3 signed int 
+      f86: const variable length array of signed int 
+      f87: const array of signed int with dimension of constant expression 3 signed int 
+      f88: static array of signed int with dimension of constant expression 3 signed int 
+      f89: const static array of signed int with dimension of constant expression 3 signed int 
+      f90: const variable length array of pointer to signed int 
+      f91: const array of pointer to signed int with dimension of constant expression 3 signed int 
+      f92: static array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f93: const static array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f94: const static array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f95: const variable length array of pointer to signed int 
+      f96: const array of pointer to signed int with dimension of constant expression 3 signed int 
+      f97: static array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f98: const static array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f99: const static array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f100: const variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f102: static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f103: const static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f104: const variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f105: const array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f106: static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f107: const static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f108: const variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f110: static array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f111: const static array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f112: const static array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f113: const variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f114: const array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f115: static array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f116: const static array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f117: const static array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Output-a/InferParam.txt
===================================================================
--- src/Tests/Output-a/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,165 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+g: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+i: function
+    with parameters
+      float 
+    returning 
+      void 
+
+h: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: g
+                ...to: 
+                    Name: a
+
+
+context has_f_and_j
+    with parameters
+      T: type
+      U: type
+
+    with members
+      f: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+      j: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type U (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+
+j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+k: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          instance of context has_f_and_j 
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+l: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: k
+                ...to: 
+                    Name: b
+
+
Index: src/Tests/Output-a/Initialization.txt
===================================================================
--- src/Tests/Output-a/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,139 @@
+x11: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x12: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x21: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x22: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y1: array of signed int with dimension of constant expression 20 signed int 
+y2: array of signed int with dimension of constant expression 20 signed int 
+struct __anonymous0
+    with members
+      w: tuple of types
+          signed int 
+
+
+a: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer:       Tuple:
+        constant expression 2 signed int 
+
+      designated by:         Name: w
+
+struct __anonymous1
+    with members
+      a: array of signed int with dimension of constant expression 3 signed int 
+      b: signed int 
+
+w: open array of instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: 0
+        Name: a
+      ]
+      Simple Initializer:         Name: 1
+
+    Simple Initializer:       Name: 1
+
+      designated by:         Name: 0
+        Name: b
+
+    Simple Initializer: constant expression 2 signed int 
+      designated by:         Name: 1
+        Name: a
+        Name: 0
+
+struct __anonymous3
+    with members
+      f1: signed int 
+      f2: signed int 
+      f3: signed int 
+      struct __anonymous2
+          with members
+            g1: signed int 
+            g2: signed int 
+            g3: signed int 
+
+      f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+
+v7: instance of struct __anonymous3 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: f1
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: f2
+
+    Compound initializer:        designated by: [        Name: f4
+constant expression 2 signed int       ]
+      Simple Initializer: constant expression 3 signed int 
+        designated by:           Name: g1
+
+      Simple Initializer:         Name: 0
+
+        designated by:           Name: g3
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: f4
+constant expression 3 signed int         Name: g3
+
+struct point
+    with members
+      x: signed int 
+      z: signed int 
+      struct __anonymous4
+          with members
+            y1: signed int 
+            y2: signed int 
+            y3: signed int 
+
+      y: instance of struct __anonymous4 
+      w: signed int 
+
+struct quintet
+    with members
+      v: signed int 
+      w: signed int 
+      x: signed int 
+      y: signed int 
+      z: signed int 
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p1: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+              designated by:                 Name: x
+
+        Declaration of p2: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+            Simple Initializer: constant expression 4 signed int 
+        Declaration of p3: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: x
+                Name: z
+
+            Compound initializer:                designated by: [                Name: y
+              ]
+              Simple Initializer: constant expression 6 signed int 
+                designated by:                   Name: y3
+                  Name: y1
+
+              Simple Initializer: constant expression 17 signed int 
+        Declaration of p4: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: w
+
+            Simple Initializer: constant expression 4 signed int 
+
Index: src/Tests/Output-a/Initialization2.txt
===================================================================
--- src/Tests/Output-a/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,142 @@
+a: signed int with initializer 
+  Simple Initializer: constant expression 3 signed int 
+struct __anonymous0
+    with members
+      x: signed int 
+      y: signed int 
+
+z: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Simple Initializer: constant expression 7 signed int 
+struct __anonymous1
+    with members
+      x: signed int 
+      y: signed int 
+
+z1: instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+        Name: y
+
+struct __anonymous2
+    with members
+      x: signed int 
+      y: signed int 
+
+z2: instance of struct __anonymous2 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: y
+
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: x
+
+struct __anonymous4
+    with members
+      x: signed int 
+      struct __anonymous3
+          with members
+            y1: signed int 
+            y2: signed int 
+
+      y: instance of struct __anonymous3 
+
+z3: instance of struct __anonymous4 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 4 signed int 
+        designated by:           Name: y1
+
+      Simple Initializer: constant expression 5 signed int 
+        designated by:           Name: y2
+
+struct __anonymous6
+    with members
+      x: signed int 
+      struct __anonymous5
+          with members
+            y1: signed int 
+            y2: signed int 
+
+      y: instance of struct __anonymous5 
+
+z3: instance of struct __anonymous6 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+struct __anonymous8
+    with members
+      x: signed int 
+      struct __anonymous7
+          with members
+            y1: signed int 
+            y2: signed int 
+
+      y: instance of struct __anonymous7 
+
+z3: instance of struct __anonymous8 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+    Compound initializer:  
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+struct __anonymous10
+    with members
+      x: signed int 
+      struct __anonymous9
+          with members
+            y1: signed int 
+            y2: signed int 
+
+      y: instance of struct __anonymous9 
+
+z3: instance of struct __anonymous10 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Compound initializer:  
+      Simple Initializer: constant expression 4 signed int 
+      Simple Initializer: constant expression 5 signed int 
+struct t
+    with members
+      a: signed int 
+      b: signed int 
+
+x: instance of struct t with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: b
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: a
+
+struct __anonymous11
+    with members
+      x: signed int 
+      y: signed int 
+
+z6: instance of struct __anonymous11 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 5 signed int 
+    Simple Initializer: constant expression 6 signed int 
+    Simple Initializer: constant expression 4 signed int 
Index: src/Tests/Output-a/LabelledExit.txt
===================================================================
--- src/Tests/Output-a/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,743 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+        Declaration of x: signed int 
+        Declaration of y: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: y
+                Name: 0
+
+                  CompoundStmt
+                          If on condition: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?==?
+                        ...to: 
+                            Name: x
+                            Name: y
+                        Name: 0
+
+                  to:
+                    signed int 
+              .... and branches: 
+                  CompoundStmt
+                                          Labels: {}
+                      For Statement
+                        initialization: 
+
+                        condition: 
+                          Cast of:
+                            Applying untyped: 
+                                Name: ?!=?
+                            ...to: 
+                                Applying untyped: 
+                                    Name: ?<?
+                                ...to: 
+                                    Name: i
+                                    Name: y
+                                Name: 0
+
+                          to:
+                            signed int 
+
+                        increment: 
+
+                        statement block: 
+                          CompoundStmt
+                                                          Expression Statement:
+                                Applying untyped: 
+                                    Name: ?+=?
+                                ...to: 
+                                    Address of:
+                                      Name: y
+                                    Name: 1
+
+                                                          If on condition: 
+                                  Cast of:
+                                    Applying untyped: 
+                                        Name: ?!=?
+                                    ...to: 
+                                        Applying untyped: 
+                                            Name: ?<?
+                                        ...to: 
+                                            Name: y
+constant expression 10 signed int                                         Name: 0
+
+                                  to:
+                                    signed int 
+                              .... and branches: 
+                                  Branch (Break)
+
+
+
+
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Name: y
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              Null Statement
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: x
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: y
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                                                  If on condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?==?
+                                    ...to: 
+                                        Name: y
+constant expression 3 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+                          .... and branches: 
+                              Branch (Break)
+
+
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: x
+                        Name: 1
+
+
+                  Labels: {A,}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {B,}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: i
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 10 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?+=?
+                      ...to: 
+                          Address of:
+                            Name: i
+                          Name: 1
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {C,}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Applying untyped: 
+                                    Name: ?=?
+                                ...to: 
+                                    Address of:
+                                      Name: i
+                                    Name: 0
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?<?
+                                    ...to: 
+                                        Name: i
+constant expression 10 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Applying untyped: 
+                                  Name: ?+=?
+                              ...to: 
+                                  Address of:
+                                    Name: i
+                                  Name: 1
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {D,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+                                  Branch (Continue)
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: 1
+
+                  Branch (Goto)
+
+                  Labels: {X,Y,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Continue)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  Branch (Break)
+
+
+
+                  Labels: {XX,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {YY,}
+                  For Statement
+                    initialization: 
+
+                    condition: 
+
+                    increment: 
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {ZZ,}
+                          For Statement
+                            initialization: 
+
+                            condition: 
+
+                            increment: 
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Expression Statement:
+                                    Applying untyped: 
+                                        Name: ?+=?
+                                    ...to: 
+                                        Address of:
+                                          Name: i
+                                        Name: 1
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+Declaration of i: signed int with initializer 
+              Simple Initializer:                 Name: 0
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: 0
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20,L21,L22,L23,L24,L25,L26,L27,L28,L29,L31,L32,L33,L34,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Switch on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Choose on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+                  Fall-through statement
+              Case constant expression 2 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  CompoundStmt
+            Declaration of array: static open array of pointer to void with initializer 
+              Compound initializer:  
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: foo
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: bar
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: hack
+
+                          Branch (Goto)
+
+
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: i
+constant expression 5 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  Branch (Break)
+
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?+=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 1
+
+
Index: src/Tests/Output-a/Members.txt
===================================================================
--- src/Tests/Output-a/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,186 @@
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+__builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+a: function
+    with parameters
+      char 
+    returning 
+      void 
+
+b: function
+    with parameters
+      signed int 
+    returning 
+      void 
+
+c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      void 
+
+d: function
+    with parameters
+      pointer to float 
+    returning 
+      void 
+
+struct a_struct
+    with members
+      a: signed int 
+      a: char 
+      a: float 
+
+union b_struct
+    with members
+      a: pointer to signed int 
+      a: pointer to char 
+      a: pointer to float 
+
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of the_struct: instance of struct a_struct 
+        Declaration of the_struct: instance of union b_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+
+struct c_struct
+    with members
+      signed int 
+      char 
+      float 
+
+union d_struct
+    with members
+      pointer to signed int 
+      pointer to char 
+      pointer to float 
+
+g: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of x: short unsigned int 
+        Declaration of x: instance of struct c_struct 
+        Declaration of x: instance of union d_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Name: x
+
+
+struct forward
+q: pointer to instance of struct forward 
+struct forward
+    with members
+      y: signed int 
+
+h: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Member Expression, with field: y            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: q
+
+
Index: src/Tests/Output-a/Misc.txt
===================================================================
--- src/Tests/Output-a/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      void 
+
+g: function
+    with parameters
+      unsigned int 
+    returning 
+      void 
+
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on:                   Name: a
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on: signed int 
+
+
Index: src/Tests/Output-a/MiscError.txt
===================================================================
--- src/Tests/Output-a/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,54 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      void 
+
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: b
+
+                  Name: a
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: b
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: b
+
+                  Name: b
+
+                  Expression Statement:
+            Sizeof Expression on:               Name: b
+
+
+
Index: src/Tests/Output-a/NamedParmArg.txt
===================================================================
--- src/Tests/Output-a/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,94 @@
+f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int 
+    returning 
+      signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 with designator:                  Name: i
+                Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int                 with designator:                  Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Applying untyped: 
+                    Name: f2
+                ...to: 
+                with designator:                  Tuple:
+                                          Name: j
+
+                                          Name: i
+
+
+
Index: src/Tests/Output-a/NumericConstants.txt
===================================================================
--- src/Tests/Output-a/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,88 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Name: 1
+
+                  Expression Statement:
+constant expression 21 signed int 
+                  Expression Statement:
+constant expression 2147483647 signed int 
+                  Expression Statement:
+constant expression 37LL long long signed int 
+                  Expression Statement:
+constant expression 45ull long long unsigned int 
+                  Expression Statement:
+constant expression 89llu long long unsigned int 
+                  Expression Statement:
+constant expression 99LLu long long unsigned int 
+                  Expression Statement:
+constant expression 56lu long unsigned int 
+                  Expression Statement:
+constant expression 88LLu long long unsigned int 
+                  Expression Statement:
+constant expression 0u unsigned int 
+                  Expression Statement:
+constant expression 0377 signed int 
+                  Expression Statement:
+constant expression 0377ul long unsigned int 
+                  Expression Statement:
+constant expression 0x1 signed int 
+                  Expression Statement:
+constant expression 0x1u unsigned int 
+                  Expression Statement:
+constant expression 0xabL long signed int 
+                  Expression Statement:
+constant expression 0x80000000 unsigned int 
+                  Expression Statement:
+constant expression 0xfff signed int 
+                  Expression Statement:
+constant expression 0xef3daa5c unsigned int 
+                  Expression Statement:
+constant expression 0x3LL long long signed int 
+                  Expression Statement:
+constant expression 3. double 
+                  Expression Statement:
+constant expression 3100. double 
+                  Expression Statement:
+constant expression 1000000. double 
+                  Expression Statement:
+constant expression 3.1 double 
+                  Expression Statement:
+constant expression 3.141592654L long double 
+                  Expression Statement:
+constant expression 123456.123456 double 
+                  Expression Statement:
+constant expression 3E1 double 
+                  Expression Statement:
+constant expression 3e1f float 
+                  Expression Statement:
+constant expression 3E11F float 
+                  Expression Statement:
+constant expression 3E11 double 
+                  Expression Statement:
+constant expression 3e+11 double 
+                  Expression Statement:
+constant expression 3E-11 double 
+                  Expression Statement:
+constant expression 3.0E1 double 
+                  Expression Statement:
+constant expression 3.0E1L long double 
+                  Expression Statement:
+constant expression 3.0e11 double 
+                  Expression Statement:
+constant expression 3.0E11l long double 
+                  Expression Statement:
+constant expression 3.0e+11l long double 
+                  Expression Statement:
+constant expression 3.0E-11 double 
+                  Expression Statement:
+constant expression 123456.123456E-16 double 
+                  Expression Statement:
+constant expression 0xff.ffp0 double 
+                  Expression Statement:
+constant expression 0x1.ffffffffp128l long double 
+
Index: src/Tests/Output-a/OccursError.txt
===================================================================
--- src/Tests/Output-a/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,54 @@
+f: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to function
+          with parameters
+            instance of type T (not function type) 
+            pointer to instance of type T (not function type) 
+          returning 
+            void 
+
+    returning 
+      void 
+
+g: forall
+      U: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      void 
+
+test: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: g
+
+
Index: src/Tests/Output-a/Operators.txt
===================================================================
--- src/Tests/Output-a/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,87 @@
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: number1
+    Name: number2
+
+
+
+?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+struct accumulator
+    with members
+      total: signed int 
+
+?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of a: char 
+        Declaration of b: char 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?()
+            ...to: 
+                Name: a
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+        Declaration of ?+?: instance of struct accumulator 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+
Index: src/Tests/Output-a/Quad.txt
===================================================================
--- src/Tests/Output-a/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+square: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: t
+    Name: t
+
+
+
+quad: forall
+      U: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: square
+...to: 
+    Applying untyped: 
+        Name: square
+    ...to: 
+        Name: u
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: quad
+            ...to: 
+constant expression 7 signed int 
+
Index: src/Tests/Output-a/Rank2.txt
===================================================================
--- src/Tests/Output-a/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,117 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+a: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              void 
+
+        Declaration of g: function
+            with parameters
+              p: forall
+                    U: type
+                      with assertions
+                        ?=?: function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    void 
+
+            returning 
+              void 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: f
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of h: function
+            with parameters
+              null: pointer to signed int 
+            returning 
+              void 
+
+        Declaration of id: forall
+              T: type
+                with assertions
+                  ?=?: function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+        Declaration of 0: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: id
+                ...to: 
+                    Applying untyped: 
+                        Name: id
+                    ...to: 
+                        Applying untyped: 
+                            Name: id
+                        ...to: 
+                            Name: 0
+
+
Index: src/Tests/Output-a/Scope.txt
===================================================================
--- src/Tests/Output-a/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,157 @@
+x: signed int 
+y: typedef for double 
+t: typedef for float 
+z: instance of type y (not function type) 
+struct __anonymous0
+    with members
+      a: signed int 
+      b: double 
+
+u: type for instance of struct __anonymous0 
+f: function
+    with parameters
+      y: signed int 
+    returning 
+      signed int 
+
+q: instance of type y (not function type) 
+w: function
+    with parameters
+      y: instance of type y (not function type) 
+      v: instance of type u (not function type) 
+    returning 
+      instance of type y (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of x: type
+          with assertions
+            t: function
+                with parameters
+                  instance of type u (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+
+        Declaration of u: instance of type u (not function type) with initializer 
+          Simple Initializer:             Name: y
+
+        Declaration of z: instance of type x (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: t
+            ...to: 
+                Name: u
+
+
+p: instance of type y (not function type) 
+context has_u
+    with parameters
+      z: type
+
+    with members
+      u: function
+          with parameters
+            instance of type z (not function type) 
+          returning 
+            instance of type z (not function type) 
+
+
+q: forall
+      t: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          instance of context has_u 
+            with parameters
+              instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      instance of type y (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of y: instance of type t (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: u
+            ...to: 
+                Name: the_t
+
+
+f: function
+    with parameters
+      p: instance of type y (not function type) 
+    returning 
+      instance of type t (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+        Declaration of x: typedef for char 
+                  CompoundStmt
+            Declaration of y: instance of type x (not function type) 
+            Declaration of z: typedef for instance of type x (not function type) 
+                          CompoundStmt
+                Declaration of x: instance of type z (not function type) 
+                Declaration of y: typedef for instance of type z (not function type) 
+                Declaration of z: instance of type y (not function type) with initializer 
+                  Simple Initializer:                     Name: x
+
+
+            Declaration of x: instance of type z (not function type) with initializer 
+              Simple Initializer:                 Name: y
+
+
+        Declaration of q: instance of type x (not function type) with initializer 
+          Simple Initializer:             Name: y
+
+
+g: function
+    with parameters
+      void 
+    returning 
+      instance of type t (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of x: typedef for char 
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: some_func
+                    ...to: 
+
+            and handlers: 
+              Catch Statement
+              ... catching
+x: instance of type x (not function type) 
+
+        Declaration of z: instance of type x (not function type) 
+
+q: function
+      accepting unspecified arguments
+    returning 
+      instance of type y (not function type) 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+                  Switch on condition: Name: i
+
+              Case Name: 0
+
+                  Return Statement, returning: Name: q
+
+              Default 
+                  Return Statement, returning: Name: i
+
+
+
Index: src/Tests/Output-a/ScopeErrors.txt
===================================================================
--- src/Tests/Output-a/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,48 @@
+thisIsAnError: signed int 
+thisIsAnError: signed int 
+thisIsNotAnError: signed int 
+thisIsNotAnError: float 
+thisIsAlsoNotAnError: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of thisIsNotAnError: signed int 
+
+thisIsAlsoNotAnError: function
+    with parameters
+      x: double 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+thisIsStillNotAnError: function
+    with parameters
+      double 
+    returning 
+      double 
+
+thisIsStillNotAnError: function
+    with parameters
+      double 
+    returning 
+      double 
+
+butThisIsAnError: function
+    with parameters
+      double 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+
+butThisIsAnError: function
+    with parameters
+      double 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Output-a/ShortCircuit.txt
===================================================================
--- src/Tests/Output-a/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,105 @@
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+0: signed int 
+g: function
+    with parameters
+      float 
+    returning 
+      void 
+
+g: function
+    with parameters
+      signed int 
+    returning 
+      void 
+
+f: function
+    with parameters
+      a: signed int 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+        Declaration of c: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Name: a
+                        Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Name: b
+                Second alternative:
+                  Name: c
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: c
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: b
+      Name: 0
+
+to:
+  signed int 
+
+
+
Index: src/Tests/Output-a/Statement.txt
===================================================================
--- src/Tests/Output-a/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,79 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+0: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of struct __anonymous0
+            with members
+              b: signed int 
+
+        Declaration of a: instance of struct __anonymous0 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: a
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Name: a
+                            Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                        Declaration of b: pointer to signed int 
+                                                  Labels: {}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Name: b
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Name: a
+                                    Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Name: b
+
+                            statement block: 
+                              CompoundStmt
+
+
+
+
+
Index: src/Tests/Output-a/StructMember.txt
===================================================================
--- src/Tests/Output-a/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,71 @@
+T: typedef for signed int 
+struct S
+    with members
+      m1: signed int with bitfield width constant expression 3 signed int 
+      m2: signed int with bitfield width constant expression 4 signed int 
+      signed int with bitfield width constant expression 2 signed int 
+      signed int with bitfield width constant expression 3 signed int 
+      signed int with bitfield width constant expression 4 signed int 
+      m3: signed int 
+      m4: signed int 
+      m5: signed int 
+      m6: signed int 
+      m7: pointer to signed int 
+      m8: pointer to signed int 
+      m9: pointer to signed int 
+      m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      T: instance of type T (not function type) 
+      T: instance of type T (not function type) 
+      m12: pointer to signed int 
+      m13: pointer to signed int 
+      m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      instance of type T (not function type) 
+
+s: instance of struct S 
+union U
+    with members
+      m1: array of signed int with dimension of constant expression 5 signed int 
+      m2: array of signed int with dimension of constant expression 5 signed int 
+      m3: pointer to signed int 
+      m4: pointer to signed int 
+
+u: instance of union U 
Index: src/Tests/Output-a/Subrange.txt
===================================================================
--- src/Tests/Output-a/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,365 @@
+context ordered
+    with parameters
+      T: type
+
+    with members
+      ?<?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+      ?<=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+
+subrange: type for instance of type base_t (not function type) 
+  with parameters
+    base_t: type
+      with assertions
+        instance of context ordered 
+          with parameters
+            instance of type base_t (not function type) 
+
+
+
+day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+lcase: instance of type subrange (not function type) 
+  with parameters
+    char 
+    constant expression 'a' char 
+    constant expression 'z' char 
+
+foo: instance of type subrange (not function type) 
+  with parameters
+    signed int 
+          Name: 0
+
+          Applying untyped: 
+          Name: ?&?
+      ...to: 
+          Applying untyped: 
+              Name: rand
+          ...to: 
+constant expression 0xF signed int 
+
+lbound: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: low
+
+
+
+hbound: forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: high
+
+
+
+lday: unsigned int with initializer 
+  Simple Initializer:     Applying untyped: 
+        Name: lbound
+    ...to: 
+        Name: day_of_month
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          instance of context ordered 
+            with parameters
+              instance of type T (not function type) 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+      source: instance of type T (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: high
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          instance of context ordered 
+            with parameters
+              instance of type T (not function type) 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+      source: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: s_low
+
+                      Name: s_high
+
+
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: s_low
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: s_high
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
Index: src/Tests/Output-a/Switch.txt
===================================================================
--- src/Tests/Output-a/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+                  Switch on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: constant expression 3 signed int 
+              Default 
+              Case constant expression 2 signed int 
+              Case constant expression 3 signed int 
+                  Expression Statement:
+constant expression 3 signed int 
+                  Switch on condition: Name: i
+
+
+                  Switch on condition: Name: i
+
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+  constant expression 7 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Fall-through statement
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+                  Fall-through statement
+
+
Index: src/Tests/Output-a/Tuple.txt
===================================================================
--- src/Tests/Output-a/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,561 @@
+f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: open array of char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+struct inner
+    with members
+      f2: signed int 
+      f3: signed int 
+
+struct outer
+    with members
+      f1: signed int 
+      i: instance of struct inner 
+      f4: double 
+
+s: instance of struct outer 
+sp: pointer to instance of struct outer 
+t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+t2: static const tuple of types
+    signed int 
+    const signed int 
+
+t3: static const tuple of types
+    signed int 
+    const signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      rc: signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      signed int 
+
+f1: function
+    with parameters
+      w: signed int 
+    returning 
+      x: short signed int 
+      y: unsigned int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: y
+
+                                          Name: x
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: x
+
+                                                  Name: y
+
+                    Tuple:
+                                              Name: w
+
+                      constant expression 23 signed int 
+
+
+g1: function
+    returning 
+      r: tuple of types
+          signed int 
+          char 
+          long signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+        Declaration of x: short signed int 
+        Declaration of p: short signed int 
+        Declaration of y: unsigned int 
+        Declaration of z: tuple of types
+            signed int 
+            signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Tuple:
+                                      Name: p
+
+                                      Applying untyped: 
+                        Name: f
+                    ...to: 
+constant expression 17 signed int 
+                  constant expression 3 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Cast of:
+                  Tuple:
+                                          Name: p
+
+                                          Applying untyped: 
+                          Name: f
+                      ...to: 
+constant expression 17 signed int 
+                    constant expression 3 signed int 
+
+                to:
+                  short signed int 
+                  unsigned int 
+                  tuple of types
+                      signed int 
+                      signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: r
+                Tuple:
+                                      Name: x
+
+                                      Name: y
+
+                                      Name: z
+
+
+
+main: C function
+    with parameters
+      argc: signed int 
+      argv: pointer to pointer to char 
+    returning 
+      rc: signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of b: signed int 
+        Declaration of c: signed int 
+        Declaration of d: signed int 
+        Declaration of t: instance of struct outer with initializer 
+          Compound initializer:  
+            Simple Initializer:               Tuple:
+                                  Name: 1
+
+                constant expression 7.0 double 
+
+              designated by:                 Name: f1
+                Name: f4
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: t1
+constant expression 3 signed int 
+                  Expression Statement:
+            Tuple:
+
+                  Expression Statement:
+            Tuple:
+              constant expression 3 signed int 
+              constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Tuple:
+                  constant expression 4.6 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Tuple:
+                      constant expression 3 signed int 
+                      constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                                          Tuple:
+                                                  Name: c
+
+
+                Tuple:
+                  constant expression 2 signed int 
+                                      Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?>?
+                        ...to: 
+constant expression 3 signed int constant expression 4 signed int                         Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Tuple:
+                                          Name: b
+
+                    constant expression 6 signed int 
+                Second alternative:
+                  Tuple:
+                    constant expression 7 signed int 
+                    constant expression 8 signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Tuple:
+                                      Name: a
+
+                                      Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t2
+                    Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: d
+                        Applying untyped: 
+                            Name: ?+=?
+                        ...to: 
+                            Address of:
+                              Name: c
+                            Name: 1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Tuple:
+                                              Name: c
+
+                                              Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: t2
+                        Tuple:
+                                                      Name: c
+
+                                                      Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                        constant expression 3 signed int 
+                        constant expression 4 signed int 
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Tuple:
+                            constant expression 3 signed int 
+                            constant expression 4 signed int 
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: t1
+                            Tuple:
+                              constant expression 3 signed int 
+                              constant expression 4 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Tuple:
+                  constant expression 11 signed int 
+                  constant expression 12 signed int 
+                  constant expression 13 signed int 
+                  constant expression 3.14159 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: sp
+                Name: sp
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: printf
+            ...to: 
+constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int                 Name: s
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: rc
+                Name: 0
+
+
Index: src/Tests/Output-a/TypeGenerator.txt
===================================================================
--- src/Tests/Output-a/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,152 @@
+context addable
+    with parameters
+      T: type
+
+    with members
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+struct __anonymous0
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+
+List1: type for pointer to instance of struct __anonymous0 
+  with parameters
+    T: type
+      with assertions
+        instance of context addable 
+          with parameters
+            instance of type T (not function type) 
+
+
+
+ListOfIntegers: typedef for instance of type List1 (not function type) 
+  with parameters
+    signed int 
+
+li: instance of type ListOfIntegers (not function type) 
+f: function
+    with parameters
+      g: pointer to function
+          with parameters
+            signed int 
+          returning 
+            instance of type List1 (not function type) 
+              with parameters
+                signed int 
+
+
+    returning 
+      signed int 
+
+h: function
+    with parameters
+      p: pointer to instance of type List1 (not function type) 
+        with parameters
+          signed int 
+
+    returning 
+      signed int 
+
+struct S1
+    with parameters
+      T: type
+
+struct S1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+v1: instance of struct S1 
+  with parameters
+    signed int 
+
+p: pointer to instance of struct S1 
+  with parameters
+    signed int 
+
+struct S2
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+v2: instance of struct S2 
+  with parameters
+    signed int 
+
+struct __anonymous1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+v2: instance of struct __anonymous1 
+  with parameters
+    signed int 
+
+struct node
+    with parameters
+      T: type
+        with assertions
+          instance of context addable 
+            with parameters
+              instance of type T (not function type) 
+
+
+
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+List: type for pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+  with parameters
+    T: type
+
+my_list: instance of type List (not function type) 
+  with parameters
+    signed int 
+
+Complex: type
+  with assertions
+    instance of context addable 
+      with parameters
+        instance of type Complex (not function type) 
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Cast of:
+              Name: my_list
+
+            to:
+              instance of struct node 
+                with parameters
+                  signed int 
+
+
+
Index: src/Tests/Output-a/Typedef.txt
===================================================================
--- src/Tests/Output-a/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,104 @@
+T: typedef for signed int 
+f: function
+    with parameters
+      void 
+    returning 
+      void 
+    with body 
+      CompoundStmt
+        Declaration of T: function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: T
+            ...to: 
+constant expression 3 signed int 
+
+struct __anonymous0
+    with members
+      T: instance of type T (not function type) 
+
+fred: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+a: typedef for pointer to function
+    with parameters
+      signed int 
+      char 
+    returning 
+      signed int 
+
+b: instance of type a (not function type) 
+g: function
+    with parameters
+      void 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: double 
+
+c: instance of type a (not function type) 
+x: typedef for type-of expression constant expression 3 signed int 
+y: typedef for type-of expression constant expression 3 signed int 
+p: instance of type x (not function type) 
+q: instance of type y (not function type) 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of z: typedef for type-of expression constant expression 3 signed int 
+        Declaration of p: typedef for type-of expression constant expression 3 signed int 
+        Declaration of w: instance of type z (not function type) 
+        Declaration of x: instance of type p (not function type) 
+
+arrayOf10Pointers: typedef for array of pointer to signed int with dimension of constant expression 10 signed int 
+array: instance of type arrayOf10Pointers (not function type) 
+constantPointer: typedef for const pointer to signed int 
+funcPtr: typedef for pointer to function
+    with parameters
+      open array of signed int 
+    returning 
+      signed int 
+
+funcProto: typedef for function
+    with parameters
+      open array of signed int 
+    returning 
+      signed int 
+
+tupleType: typedef for tuple of types
+    signed int 
+    signed int 
+
+tupleTypePtr: typedef for pointer to tuple of types
+    signed int 
+    signed int 
+
+a: typedef for pointer to signed int 
+b: typedef for pointer to signed int 
+f: typedef for function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+g: typedef for function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+t: typedef for tuple of types
+    pointer to static array of signed int with dimension of constant expression 10 signed int 
+
+f: typedef for function
+    returning 
+      x: pointer to static array of signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Output-a/TypedefDeclarator.txt
===================================================================
--- src/Tests/Output-a/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,275 @@
+f0: typedef for signed int 
+f1: typedef for signed int 
+f2: typedef for signed int 
+f3: typedef for signed int 
+f4: typedef for signed int 
+f5: typedef for signed int 
+f6: typedef for signed int 
+f7: typedef for signed int 
+f8: typedef for signed int 
+f9: typedef for signed int 
+f10: typedef for signed int 
+f11: typedef for signed int 
+f12: typedef for signed int 
+f13: typedef for signed int 
+f14: typedef for signed int 
+f15: typedef for signed int 
+f16: typedef for signed int 
+f17: typedef for signed int 
+f18: typedef for signed int 
+f19: typedef for signed int 
+f20: typedef for signed int 
+f21: typedef for signed int 
+f22: typedef for signed int 
+f23: typedef for signed int 
+f24: typedef for signed int 
+f25: typedef for signed int 
+f26: typedef for signed int 
+f27: typedef for signed int 
+f28: typedef for signed int 
+f29: typedef for signed int 
+f30: typedef for signed int 
+f31: typedef for signed int 
+f32: typedef for signed int 
+f33: typedef for signed int 
+f34: typedef for signed int 
+f35: typedef for signed int 
+f36: typedef for signed int 
+f37: typedef for signed int 
+f38: typedef for signed int 
+f39: typedef for signed int 
+f40: typedef for signed int 
+f41: typedef for signed int 
+f42: typedef for signed int 
+f43: typedef for signed int 
+f44: typedef for signed int 
+f45: typedef for signed int 
+f46: typedef for signed int 
+f47: typedef for signed int 
+f48: typedef for signed int 
+f49: typedef for signed int 
+f50: typedef for signed int 
+f51: typedef for signed int 
+f52: typedef for signed int 
+f53: typedef for signed int 
+f54: typedef for signed int 
+f55: typedef for signed int 
+f56: typedef for signed int 
+f57: typedef for signed int 
+f58: typedef for signed int 
+f59: typedef for signed int 
+f60: typedef for signed int 
+f61: typedef for signed int 
+f62: typedef for signed int 
+f63: typedef for signed int 
+f64: typedef for signed int 
+f65: typedef for signed int 
+f66: typedef for signed int 
+f67: typedef for signed int 
+f68: typedef for signed int 
+f69: typedef for signed int 
+f70: typedef for signed int 
+f71: typedef for signed int 
+f72: typedef for signed int 
+f73: typedef for signed int 
+f74: typedef for signed int 
+f75: typedef for signed int 
+f76: typedef for signed int 
+f77: typedef for signed int 
+f78: typedef for signed int 
+f79: typedef for signed int 
+f80: typedef for signed int 
+f81: typedef for signed int 
+f82: typedef for signed int 
+f83: typedef for signed int 
+f84: typedef for signed int 
+f85: typedef for signed int 
+f86: typedef for signed int 
+f87: typedef for signed int 
+f88: typedef for signed int 
+f89: typedef for signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Output-a/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Output-a/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,382 @@
+f0: typedef for signed int 
+f1: typedef for signed int 
+f2: typedef for signed int 
+f3: typedef for signed int 
+f4: typedef for signed int 
+f5: typedef for signed int 
+f6: typedef for signed int 
+f7: typedef for signed int 
+f8: typedef for signed int 
+f9: typedef for signed int 
+f10: typedef for signed int 
+f11: typedef for signed int 
+f12: typedef for signed int 
+f13: typedef for signed int 
+f14: typedef for signed int 
+f15: typedef for signed int 
+f16: typedef for signed int 
+f17: typedef for signed int 
+f18: typedef for signed int 
+f19: typedef for signed int 
+f20: typedef for signed int 
+f21: typedef for signed int 
+f22: typedef for signed int 
+f23: typedef for signed int 
+f24: typedef for signed int 
+f25: typedef for signed int 
+f26: typedef for signed int 
+f27: typedef for signed int 
+f28: typedef for signed int 
+f29: typedef for signed int 
+f30: typedef for signed int 
+f31: typedef for signed int 
+f32: typedef for signed int 
+f33: typedef for signed int 
+f34: typedef for signed int 
+f35: typedef for signed int 
+f36: typedef for signed int 
+f37: typedef for signed int 
+f38: typedef for signed int 
+f39: typedef for signed int 
+f40: typedef for signed int 
+f41: typedef for signed int 
+f42: typedef for signed int 
+f43: typedef for signed int 
+f44: typedef for signed int 
+f45: typedef for signed int 
+f46: typedef for signed int 
+f47: typedef for signed int 
+f48: typedef for signed int 
+f49: typedef for signed int 
+f50: typedef for signed int 
+f51: typedef for signed int 
+f52: typedef for signed int 
+f53: typedef for signed int 
+f54: typedef for signed int 
+f55: typedef for signed int 
+f56: typedef for signed int 
+f57: typedef for signed int 
+f58: typedef for signed int 
+f59: typedef for signed int 
+f60: typedef for signed int 
+f61: typedef for signed int 
+f62: typedef for signed int 
+f63: typedef for signed int 
+f64: typedef for signed int 
+f65: typedef for signed int 
+f66: typedef for signed int 
+f67: typedef for signed int 
+f68: typedef for signed int 
+f69: typedef for signed int 
+f70: typedef for signed int 
+f71: typedef for signed int 
+f72: typedef for signed int 
+f73: typedef for signed int 
+f74: typedef for signed int 
+f75: typedef for signed int 
+f76: typedef for signed int 
+f77: typedef for signed int 
+f78: typedef for signed int 
+f79: typedef for signed int 
+f80: typedef for signed int 
+f81: typedef for signed int 
+f82: typedef for signed int 
+f83: typedef for signed int 
+f84: typedef for signed int 
+f85: typedef for signed int 
+f86: typedef for signed int 
+f87: typedef for signed int 
+f88: typedef for signed int 
+f89: typedef for signed int 
+f90: typedef for signed int 
+f91: typedef for signed int 
+f92: typedef for signed int 
+f93: typedef for signed int 
+f94: typedef for signed int 
+f95: typedef for signed int 
+f96: typedef for signed int 
+f97: typedef for signed int 
+f98: typedef for signed int 
+f99: typedef for signed int 
+f100: typedef for signed int 
+f101: typedef for signed int 
+f102: typedef for signed int 
+f103: typedef for signed int 
+f104: typedef for signed int 
+f105: typedef for signed int 
+f106: typedef for signed int 
+f107: typedef for signed int 
+f108: typedef for signed int 
+f109: typedef for signed int 
+f110: typedef for signed int 
+f111: typedef for signed int 
+f112: typedef for signed int 
+f113: typedef for signed int 
+f114: typedef for signed int 
+f115: typedef for signed int 
+f116: typedef for signed int 
+f117: typedef for signed int 
+f118: typedef for signed int 
+f119: typedef for signed int 
+fred: function
+    with parameters
+      f1: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: open array of signed int 
+      f16: array of signed int with dimension of constant expression 10 signed int 
+      f19: open array of pointer to signed int 
+      f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f21: open array of pointer to pointer to signed int 
+      f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f23: open array of pointer to const pointer to signed int 
+      f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f25: open array of const pointer to const pointer to signed int 
+      f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f35: open array of pointer to signed int 
+      f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+      f37: open array of pointer to pointer to signed int 
+      f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+      f39: open array of pointer to const pointer to signed int 
+      f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f41: open array of const pointer to const pointer to signed int 
+      f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+      f43: open array of array of signed int with dimension of constant expression 3 signed int 
+      f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f65: function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const variable length array of signed int 
+      f83: const array of signed int with dimension of constant expression 3 signed int 
+      f84: static array of signed int with dimension of constant expression 3 signed int 
+      f85: const static array of signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of instance of type f86 (not function type) 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const array of instance of type f87 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            static array of instance of type f88 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const static array of instance of type f89 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f90: const variable length array of pointer to signed int 
+      f91: const array of pointer to signed int with dimension of constant expression 3 signed int 
+      f92: static array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f93: const static array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f94: const static array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of instance of type f95 (not function type) 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            const array of instance of type f96 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            static array of instance of type f97 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      function
+          with parameters
+            const static array of instance of type f98 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      function
+          with parameters
+            const static array of instance of type f99 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f100: const variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f102: static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f103: const static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of array of instance of type f104 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const array of array of instance of type f105 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            static array of array of instance of type f106 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      function
+          with parameters
+            const static array of array of instance of type f107 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f108: const variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f110: static array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f111: const static array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      f112: const static array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+      function
+          with parameters
+            const variable length array of array of instance of type f113 (not function type) with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            const array of array of instance of type f114 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      function
+          with parameters
+            static array of array of instance of type f115 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      function
+          with parameters
+            const static array of array of instance of type f116 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      function
+          with parameters
+            const static array of array of instance of type f117 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Output-a/Typeof.txt
===================================================================
--- src/Tests/Output-a/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of v1: pointer to signed int 
+        Declaration of v2: type-of expression           Name: v1
+
+        Declaration of v3: array of type-of expression           Applying untyped: 
+              Name: *?
+          ...to: 
+              Name: v1
+with dimension of constant expression 4 signed int 
+        Declaration of v4: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v5: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v6: pointer to signed int 
+        Declaration of v7: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+        Declaration of v8: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+
Index: src/Tests/Output-a/VariableDeclarator.txt
===================================================================
--- src/Tests/Output-a/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,253 @@
+f1: signed int 
+f2: signed int 
+f3: pointer to signed int 
+f4: pointer to pointer to signed int 
+f5: pointer to const pointer to signed int 
+f6: const pointer to const pointer to signed int 
+f7: pointer to signed int 
+f8: pointer to pointer to signed int 
+f9: pointer to const pointer to signed int 
+f10: const pointer to const pointer to signed int 
+f11: pointer to signed int 
+f12: pointer to pointer to signed int 
+f13: pointer to const pointer to signed int 
+f14: const pointer to const pointer to signed int 
+f15: open array of signed int 
+f16: array of signed int with dimension of constant expression 10 signed int 
+f17: open array of signed int 
+f18: array of signed int with dimension of constant expression 10 signed int 
+f19: open array of pointer to signed int 
+f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+f21: open array of pointer to pointer to signed int 
+f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f23: open array of pointer to const pointer to signed int 
+f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f25: open array of const pointer to const pointer to signed int 
+f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f27: open array of pointer to signed int 
+f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+f29: open array of pointer to pointer to signed int 
+f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f31: open array of pointer to const pointer to signed int 
+f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f33: open array of const pointer to const pointer to signed int 
+f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f35: pointer to open array of signed int 
+f36: pointer to array of signed int with dimension of constant expression 10 signed int 
+f37: pointer to pointer to open array of signed int 
+f38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+f39: pointer to const pointer to open array of signed int 
+f40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f41: const pointer to const pointer to open array of signed int 
+f42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f43: open array of array of signed int with dimension of constant expression 3 signed int 
+f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f45: open array of array of signed int with dimension of constant expression 3 signed int 
+f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f47: open array of array of signed int with dimension of constant expression 3 signed int 
+f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f69: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f71: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f72: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f73: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f74: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f75: pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f76: pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f77: pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f78: const pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f79: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f80: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f81: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      const pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+cf3: pointer to signed int 
+cf4: pointer to pointer to signed int 
+cf5: pointer to const pointer to signed int 
+cf6: const pointer to const pointer to signed int 
+cf15: open array of signed int 
+cf16: array of signed int with dimension of constant expression 10 signed int 
+cf19: open array of pointer to signed int 
+cf20: array of pointer to signed int with dimension of constant expression 10 signed int 
+cf21: open array of pointer to pointer to signed int 
+cf22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+cf23: open array of pointer to const pointer to signed int 
+cf24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf25: open array of const pointer to const pointer to signed int 
+cf26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf35: pointer to open array of signed int 
+cf36: pointer to array of signed int with dimension of constant expression 10 signed int 
+cf37: pointer to pointer to open array of signed int 
+cf38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+cf39: pointer to const pointer to open array of signed int 
+cf40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf41: const pointer to const pointer to open array of signed int 
+cf42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf43: open array of array of signed int with dimension of constant expression 3 signed int 
+cf44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+cf50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+cf52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf53: open array of array of const pointer to signed int with dimension of constant expression 3 signed int 
+cf54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+cf56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+cf68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+cf69: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to pointer to signed int 
+
+cf70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+v3: pointer to open array of pointer to open array of pointer to function
+    with parameters
+      pointer to open array of pointer to open array of signed int 
+      pointer to open array of pointer to open array of signed int 
+    returning 
+      pointer to open array of pointer to open array of signed int 
+
Index: src/Tests/Output-a/gcc900407-1.txt
===================================================================
--- src/Tests/Output-a/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,71 @@
+foo: function
+    with parameters
+      a: signed int 
+      b: signed int 
+      p: pointer to signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: a
+constant expression 0x1000 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: c
+                Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: b
+constant expression 0xffff0000 unsigned int 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?+?
+                        ...to: 
+                            Name: b
+constant expression 0xffff0000 unsigned int constant expression 2 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?++
+                ...to: 
+                    Address of:
+                      Name: c
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Name: c
+
+
Index: src/Tests/Output-a/gcc900516-1.txt
===================================================================
--- src/Tests/Output-a/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+f: function
+    with parameters
+      c: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: !?
+...to: 
+    Conditional expression on: 
+      Cast of:
+        Applying untyped: 
+            Name: ?!=?
+        ...to: 
+            Name: c
+            Name: 0
+
+      to:
+        signed int 
+    First alternative:
+constant expression 2.0 double     Second alternative:
+constant expression 1.0 double 
+
+
+
Index: src/Tests/Output-a/gcc920301-1.txt
===================================================================
--- src/Tests/Output-a/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+f: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of t: static open array of pointer to void 
+                  Null Statement
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: static array of unsigned int with dimension of constant expression 5 signed int 
+
Index: src/Tests/Output-a/gcc920409-1.txt
===================================================================
--- src/Tests/Output-a/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: y
+constant expression 0.0 double                     Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: y
+            Second alternative:
+              Applying untyped: 
+                  Name: ?-?
+              ...to: 
+                  Name: y
+                  Name: 1
+
+
+
Index: src/Tests/Output-a/gcc920409-2.txt
===================================================================
--- src/Tests/Output-a/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,90 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of x1: signed int 
+        Declaration of x2: signed int 
+        Declaration of v: double 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Cast of:
+                          Applying untyped: 
+                              Name: ?-?
+                          ...to: 
+                              Name: x1
+                              Name: x2
+
+                        to:
+                          long signed int 
+                        Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Return Statement, returning: Applying untyped: 
+    Name: -?
+...to: 
+constant expression 1.0 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: t
+                ...to: 
+                    Name: v
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: y
+                ...to: 
+                    Name: 1
+                    Conditional expression on: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: v
+constant expression 0.0 double                             Name: 0
+
+                      to:
+                        signed int 
+                    First alternative:
+                      Cast of:
+                        Name: v
+
+                      to:
+                        signed int 
+                    Second alternative:
+                      Applying untyped: 
+                          Name: ?-?
+                      ...to: 
+                          Cast of:
+                            Name: v
+
+                          to:
+                            signed int 
+                          Name: 1
+
+
+
Index: src/Tests/Output-a/gcc920410-2.txt
===================================================================
--- src/Tests/Output-a/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+joe: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of j: signed int 
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+
+
Index: src/Tests/Output-a/gcc920501-1.txt
===================================================================
--- src/Tests/Output-a/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+a: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of b: open array of pointer to pointer to signed int with initializer 
+          Compound initializer:  
+            Simple Initializer:               Applying untyped: 
+                  Name: LabAddress
+              ...to: 
+                  Name: c
+
+                  Null Statement
+
+
Index: src/Tests/Output-a/gcc920501-11.txt
===================================================================
--- src/Tests/Output-a/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Output-a/gcc920501-19.txt
===================================================================
--- src/Tests/Output-a/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+x: long long signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+
Index: src/Tests/Output-a/report
===================================================================
--- src/Tests/Output-a/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-a/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,69 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+32,38c32
+<   with assertions
+<     instance of context addable 
+<       with parameters
+<         instance of type T (not function type) 
+< 
+< 
+< li: instance of type List1 (not function type) 
+---
+> ListOfIntegers: typedef for instance of type List1 (not function type) 
+41a36
+> li: instance of type ListOfIntegers (not function type) 
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Output-e/Abstype.txt
===================================================================
--- src/Tests/Output-e/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+to:
+  pointer to pointer to signed int 
+
Index: src/Tests/Output-e/Array.txt
===================================================================
--- src/Tests/Output-e/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,96 @@
+a1: open array of signed int 
+a2: variable length array of signed int 
+a4: array of double with dimension of   Cast of:
+constant expression 3.0 double 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+m1: open array of array of signed int with dimension of constant expression 3 signed int 
+m2: variable length array of variable length array of signed int 
+m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a1: open array of signed int 
+        Declaration of a2: variable length array of signed int 
+        Declaration of a4: array of signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of T: array of signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+
+mary: function
+    with parameters
+      T: pointer to array of constant expression 3 signed int signed int 
+      p1: const pointer to array of constant expression 3 signed int signed int 
+      p2: pointer to static array of constant expression 3 signed int signed int 
+      p3: const pointer to static array of constant expression 3 signed int signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+tom: function
+      accepting unspecified arguments
+    returning 
+      pointer to array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+jane: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+          with parameters
+            T: pointer to array of constant expression 3 signed int signed int 
+            p1: const pointer to array of constant expression 3 signed int signed int 
+            p2: pointer to static array of constant expression 3 signed int signed int 
+            p3: const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+int __a1__A0i[];
+int __a2__A0i[*];
+double __a4__A0d[((long unsigned int )3.0)];
+int __m1__A0A0i[][3];
+int __m2__A0A0i[*][*];
+int __m4__A0A0i[((long unsigned int )3)][3];
+int __fred__Fi__(){
+    int __a1__A0i[];
+    int __a2__A0i[*];
+    int __a4__A0i[((long unsigned int )3)];
+    int __T__A0i[((long unsigned int )3)];
+}
+int __mary__Fi_PiCPiPiCPi_(int __T__Pi[3], int __p1__CPi[const 3], int __p2__Pi[static 3], int __p3__CPi[static const 3]){
+}
+int (*__tom__FPA0i__())[3]{
+}
+int (*__jane__FPFi_PiCPiPiCPi___())(int __T__Pi[3], int __p1__CPi[const 3], int __p2__Pi[static 3], int __p3__CPi[static const 3]){
+}
Index: src/Tests/Output-e/AsmName.txt
===================================================================
--- src/Tests/Output-e/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+x: auto signed int 
+fred: function
+    with parameters
+      x: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: static signed int 
+        Declaration of z: static pointer to signed int 
+
+extern int __x__i;
+int __fred__Fi_i_(int __x__i){
+    static int __y__i;
+    static int *__z__Pi;
+}
Index: src/Tests/Output-e/Attributes.txt
===================================================================
--- src/Tests/Output-e/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Output-e/Cast.txt
===================================================================
--- src/Tests/Output-e/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,85 @@
+f: char 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: char 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Variable Expression: f: char 
+
+            to:
+              signed int 
+            with environment:
+              Types:
+              Non-types:
+
+        Declaration of f: short signed int 
+                  Expression Statement:
+            Cast of:
+              Variable Expression: f: short signed int 
+
+            to:
+              signed int 
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Cast of:
+              Variable Expression: f: function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Cast of:
+              Tuple:
+                                  Variable Expression: f: short signed int 
+
+                                  Variable Expression: f: double 
+
+                                  Variable Expression: f: function
+                        accepting unspecified arguments
+                      returning 
+                        nothing 
+
+
+
+            to:
+              long signed int 
+              long double 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+char __f__c;
+void __f__F__(){
+    char __f__c;
+    double __f__d;
+    ((int )__f__c);
+    short __f__s;
+    ((int )__f__s);
+    ((void (*)())__f__F__);
+    ((long int ));
+}
Index: src/Tests/Output-e/CastError.txt
===================================================================
--- src/Tests/Output-e/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,36 @@
+Error: Can't choose between alternatives for expression Cast of:
+  Name: f
+
+to:
+  char 
+Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: signed int 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: double 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: f
+
+to:
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+
Index: src/Tests/Output-e/CharStringConstants.txt
===================================================================
--- src/Tests/Output-e/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,381 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+constant expression ' ' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'a' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '"' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '_' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\a' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\b' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\e' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\f' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\n' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\r' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\t' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\v' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\'' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\"' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\?' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\\' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\0' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\377' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xf' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'aa' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'a\na' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'a\0a' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xfff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '_\377_' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '_\xff_' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xffff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression 'a\xff34w' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '\xffff' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression " " array of char with dimension of constant expression 4 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "a" array of char with dimension of constant expression 4 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "'" array of char with dimension of constant expression 4 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression '_' char             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\a" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\b" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\e" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\f" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\n" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\r" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\t" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\v" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\'" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\"" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\?" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\\" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\0" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\377" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xf" array of char with dimension of constant expression 6 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "" array of char with dimension of constant expression 3 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "aa" array of char with dimension of constant expression 5 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "a\na" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int             with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int             with environment:
+              Types:
+              Non-types:
+
+
+int main(){
+    ' ';
+    'a';
+    '"';
+    '_';
+    '\a';
+    '\b';
+    '\e';
+    '\f';
+    '\n';
+    '\r';
+    '\t';
+    '\v';
+    '\'';
+    '\"';
+    '\?';
+    '\\';
+    '\0';
+    '\377';
+    '\xf';
+    '\xff';
+    '';
+    'aa';
+    'a\na';
+    'a\0a';
+    '\xfff';
+    '_\377_';
+    '_\xff_';
+    '\xffff';
+    'a\xff34w';
+    '\xff';
+    '\xffff';
+    " ";
+    "a";
+    "'";
+    '_';
+    "\a";
+    "\b";
+    "\e";
+    "\f";
+    "\n";
+    "\r";
+    "\t";
+    "\v";
+    "\'";
+    "\"";
+    "\?";
+    "\\";
+    "\0";
+    "\377";
+    "\xf";
+    "\xff";
+    "";
+    "aa";
+    "a\na";
+    "a\0a";
+    "_\377_";
+    "_\xff_";
+    "\xff";
+    "\xffff";
+    "\xfff";
+    "a\xff34w";
+    "\xffff";
+}
Index: src/Tests/Output-e/CommentMisc.txt
===================================================================
--- src/Tests/Output-e/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+i: signed int 
+i: signed int 
+i: signed int 
+i: signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+
+int __i__i;
+int __i__i;
+int __i__i;
+int __i__i;
+int main(){
+    int __x__A0i[((long unsigned int )10)];
+}
Index: src/Tests/Output-e/Constant0-1.txt
===================================================================
--- src/Tests/Output-e/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,112 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
Index: src/Tests/Output-e/Context.txt
===================================================================
--- src/Tests/Output-e/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,87 @@
+context has_q
+    with parameters
+      T: type
+
+    with members
+      q: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+f: forall
+      z: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type z (not function type) 
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+          q: pointer to function
+              with parameters
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+
+    function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of context has_r
+            with parameters
+              T: type
+              U: type
+
+            with members
+              r: function
+                  with parameters
+                    instance of type T (not function type) 
+                    pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+                  returning 
+                    instance of type T (not function type) 
+
+
+        Declaration of x: auto type
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+        Declaration of y: auto type
+          with assertions
+            instance of context has_r 
+              with parameters
+                instance of type x (not function type) 
+                instance of type y (not function type) 
+
+
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type y (not function type) 
+              _src: instance of type y (not function type) 
+            returning 
+              instance of type y (not function type) 
+
+
+;
+void __f__A1_0_0____operator_assign__PFt0_Pt0t0___q__PFt0_t0__F__(void (*_adapterF2tz_2tz_)(void (*)(), void *, void *), void (*_adapterF2tz_P2tz2tz_)(void (*)(), void *, void *, void *), long unsigned int z, void (*___operator_assign__PF2tz_P2tz2tz_)(), void (*__q__PF2tz_2tz_)(), ...){
+    ;
+    extern unsigned long x;
+    void *___operator_assign__F2tx_P2tx2tx_(void *___dst__P2tx, void *___src__2tx);
+    extern unsigned long y;
+    void *___operator_assign__F2ty_P2ty2ty_(void *___dst__P2ty, void *___src__2ty);
+}
Index: src/Tests/Output-e/DeclarationErrors.txt
===================================================================
--- src/Tests/Output-e/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-e/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Output-e/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-e/Enum.txt
===================================================================
--- src/Tests/Output-e/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+enum Colors
+    with members
+      Red: const instance of enum Colors 
+      Yellow: const instance of enum Colors 
+      Pink: const instance of enum Colors 
+      Blue: const instance of enum Colors 
+      Purple: const instance of enum Colors 
+      Orange: const instance of enum Colors 
+      Green: const instance of enum Colors 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of enum Fruits
+            with members
+              Apple: const instance of enum Fruits 
+              Banana: const instance of enum Fruits 
+              Pear: const instance of enum Fruits 
+              Mango: const instance of enum Fruits 
+
+        Declaration of fruit: instance of enum Fruits with initializer 
+          Simple Initializer:             Cast of:
+              Variable Expression: Mango: const instance of enum Fruits 
+
+            to:
+              instance of enum Fruits 
+            with environment:
+              Types:
+              Non-types:
+
+
+enum Colors
+{
+    __Red__C7eColors,
+    __Yellow__C7eColors,
+    __Pink__C7eColors,
+    __Blue__C7eColors,
+    __Purple__C7eColors,
+    __Orange__C7eColors,
+    __Green__C7eColors,
+}
+;
+void __f__F__(void){
+    enum Fruits
+{
+        __Apple__C7eFruits,
+        __Banana__C7eFruits,
+        __Pear__C7eFruits,
+        __Mango__C7eFruits,
+}
+;
+    enum Fruits __fruit__7eFruits = ((enum Fruits )__Mango__C7eFruits);
+}
Index: src/Tests/Output-e/Exception.txt
===================================================================
--- src/Tests/Output-e/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
Index: src/Tests/Output-e/Expression.txt
===================================================================
--- src/Tests/Output-e/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,101 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s 
+
+Error: No reasonable alternatives for expression Name: !?
+
+Error: No reasonable alternatives for expression Name: ~?
+
+Error: No reasonable alternatives for expression Name: +?
+
+Error: No reasonable alternatives for expression Name: -?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ++?
+
+Error: No reasonable alternatives for expression Name: --?
+
+Error: No reasonable alternatives for expression Name: ?++
+
+Error: No reasonable alternatives for expression Name: ?--
+
+Error: No reasonable alternatives for expression Name: ?+?
+
+Error: No reasonable alternatives for expression Name: ?-?
+
+Error: No reasonable alternatives for expression Name: ?*?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
+Error: No reasonable alternatives for expression Name: ?%?
+
+Error: No reasonable alternatives for expression Name: ?^?
+
+Error: No reasonable alternatives for expression Name: ?&?
+
+Error: No reasonable alternatives for expression Name: ?|?
+
+Error: No reasonable alternatives for expression Name: ?<?
+
+Error: No reasonable alternatives for expression Name: ?>?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: i
+
+Error: No reasonable alternatives for expression Name: ?==?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?<<?
+
+Error: No reasonable alternatives for expression Name: ?>>?
+
+Error: No reasonable alternatives for expression Name: ?<=?
+
+Error: No reasonable alternatives for expression Name: ?>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?-=?
+
+Error: No reasonable alternatives for expression Name: ?*=?
+
+Error: No reasonable alternatives for expression Name: ?/=?
+
+Error: No reasonable alternatives for expression Name: ?%=?
+
+Error: No reasonable alternatives for expression Name: ?&=?
+
+Error: No reasonable alternatives for expression Name: ?|=?
+
+Error: No reasonable alternatives for expression Name: ?^=?
+
+Error: No reasonable alternatives for expression Name: ?<<=?
+
+Error: No reasonable alternatives for expression Name: ?>>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Output-e/Forall.txt
===================================================================
--- src/Tests/Output-e/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,75 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type P1 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: instance of type P1 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        j: instance of type P2 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      j: instance of type P2 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+to:
+  pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+to:
+  pointer to instance of type T2 (not function type) 
+    with parameters
+      signed int 
+      signed int 
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?!=?
+...to: 
+    Applying untyped: 
+        Name: ?<?
+    ...to: 
+        Name: t1
+        Name: t2
+    Name: 0
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Name: x
+
+Error: No reasonable alternatives for expression Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: min
+...to: 
+constant expression 4.0 double constant expression 3.0 double 
Index: src/Tests/Output-e/Function.txt
===================================================================
--- src/Tests/Output-e/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,248 @@
+a: signed int 
+a: float 
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: f: function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: a: signed int 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Cast of:
+              Application of
+                Variable Expression: f: function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+              to arguments
+                                  Variable Expression: a: signed int 
+
+
+            to:
+              signed int 
+            with environment:
+              Types:
+              Non-types:
+
+
+p: tuple of types
+    signed int 
+
+p: tuple of types
+    signed int 
+    double 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+q: tuple of types
+    char 
+
+q: tuple of types
+    signed int 
+    signed int 
+
+q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+s: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: r: function
+                  with parameters
+                    signed int 
+                    signed int 
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+                    signed int 
+
+            to arguments
+                              Variable Expression: p: tuple of types
+                    signed int 
+                    signed int 
+                    signed int 
+
+
+                              Cast of:
+                  Variable Expression: q: tuple of types
+                      char 
+
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: r: function
+                  with parameters
+                    signed int 
+                    signed int 
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Tuple:
+                                          Variable Expression: q: tuple of types
+                          char 
+
+
+                                          Variable Expression: p: tuple of types
+                          signed int 
+                          signed int 
+                          signed int 
+
+
+
+                to:
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: r: function
+                  with parameters
+                    signed int 
+                    signed int 
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+                    signed int 
+
+            to arguments
+                              Application of
+                  Variable Expression: r: function
+                      with parameters
+                        signed int 
+                        signed int 
+                        signed int 
+                        signed int 
+                      returning 
+                        signed int 
+                        signed int 
+
+                to arguments
+                                      Variable Expression: p: tuple of types
+                        signed int 
+                        signed int 
+                        signed int 
+
+
+                                      Cast of:
+                      Variable Expression: q: tuple of types
+                          char 
+
+
+                    to:
+                      signed int 
+
+
+                              Application of
+                  Variable Expression: r: function
+                      with parameters
+                        signed int 
+                        signed int 
+                        signed int 
+                        signed int 
+                      returning 
+                        signed int 
+                        signed int 
+
+                to arguments
+                                      Variable Expression: q: tuple of types
+                        signed int 
+                        signed int 
+
+
+                                      Variable Expression: q: tuple of types
+                        signed int 
+                        signed int 
+
+
+
+            with environment:
+              Types:
+              Non-types:
+
+
+cfa-cpp: GenPoly/Box.cc:398: void GenPoly::{anonymous}::Pass1::boxParams(ApplicationExpr*, FunctionType*, std::list<Expression*>::iterator&, const TyVarMap&): Assertion `arg != appExpr->get_args().end()' failed.
+Aborted (core dumped)
Index: src/Tests/Output-e/Functions.txt
===================================================================
--- src/Tests/Output-e/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-e/GccExtensions.txt
===================================================================
--- src/Tests/Output-e/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,48 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s4 
+
Index: src/Tests/Output-e/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Output-e/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,443 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
+int main(){
+    int __f1__i;
+    int __f2__i;
+    int *__f3__Pi;
+    int **__f4__PPi;
+    int *const *__f5__PCPi;
+    int *const *const __f6__CPCPi;
+    int *__f7__Pi;
+    int **__f8__PPi;
+    int *const *__f9__PCPi;
+    int *const *const __f10__CPCPi;
+    int *__f11__Pi;
+    int **__f12__PPi;
+    int *const *__f13__PCPi;
+    int *const *const __f14__CPCPi;
+    int __f15__A0i[];
+    int __f16__A0i[((long unsigned int )10)];
+    int __f17__A0i[];
+    int __f18__A0i[((long unsigned int )10)];
+    int *__f19__A0Pi[];
+    int *__f20__A0Pi[((long unsigned int )10)];
+    int **__f21__A0PPi[];
+    int **__f22__A0PPi[((long unsigned int )10)];
+    int *const *__f23__A0PCPi[];
+    int *const *__f24__A0PCPi[((long unsigned int )10)];
+    int *const *const __f25__A0CPCPi[];
+    int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+    int *__f27__A0Pi[];
+    int *__f28__A0Pi[((long unsigned int )10)];
+    int **__f29__A0PPi[];
+    int **__f30__A0PPi[((long unsigned int )10)];
+    int *const *__f31__A0PCPi[];
+    int *const *__f32__A0PCPi[((long unsigned int )10)];
+    int *const *const __f33__A0CPCPi[];
+    int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+    int *__f35__A0Pi[];
+    int *__f36__A0Pi[((long unsigned int )10)];
+    int **__f37__A0PPi[];
+    int **__f38__A0PPi[((long unsigned int )10)];
+    int *const *__f39__A0PCPi[];
+    int *const *__f40__A0PCPi[((long unsigned int )10)];
+    int *const *const __f41__A0CPCPi[];
+    int *const *const __f42__A0CPCPi[((long unsigned int )10)];
+    int __f43__A0A0i[][3];
+    int __f44__A0A0i[((long unsigned int )3)][3];
+    int __f45__A0A0i[][3];
+    int __f46__A0A0i[((long unsigned int )3)][3];
+    int __f47__A0A0i[][3];
+    int __f48__A0A0i[((long unsigned int )3)][3];
+    int *__f49__A0A0Pi[][3];
+    int *__f50__A0A0Pi[((long unsigned int )3)][3];
+    int **__f51__A0A0PPi[][3];
+    int **__f52__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f53__A0A0PCPi[][3];
+    int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f55__A0A0CPCPi[][3];
+    int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+    int *__f57__A0A0Pi[][3];
+    int *__f58__A0A0Pi[((long unsigned int )3)][3];
+    int **__f59__A0A0PPi[][3];
+    int **__f60__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f61__A0A0PCPi[][3];
+    int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f63__A0A0CPCPi[][3];
+    int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+    int __f65__Fi_i_(int );
+    int __f66__Fi_i_(int );
+    int *__f67__FPi_i_(int );
+    int **__f68__FPPi_i_(int );
+    int *const *__f69__FPCPi_i_(int );
+    int *const *const __f70__FCPCPi_i_(int );
+    int *__f71__FPi_i_(int );
+    int **__f72__FPPi_i_(int );
+    int *const *__f73__FPCPi_i_(int );
+    int *const *const __f74__FCPCPi_i_(int );
+    int (*__f75__PFi_i_)(int );
+    int (**__f76__PPFi_i_)(int );
+    int (*const *__f77__PCPFi_i_)(int );
+    int (*const *const __f78__CPCPFi_i_)(int );
+    int (*(*__f79__PFPFi___i_)(int ))();
+    int (*(*const __f80__CPFPFi___i_)(int ))();
+    int (*const (*const __f81__CPFCPFi___i_)(int ))();
+}
Index: src/Tests/Output-e/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Output-e/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,223 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f2: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f7: pointer to signed int 
+      f8: pointer to pointer to signed int 
+      f9: pointer to const pointer to signed int 
+      f10: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f17: pointer to signed int 
+      f18: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f27: pointer to pointer to signed int 
+      f28: pointer to array of constant expression 10 signed int pointer to signed int 
+      f29: pointer to pointer to pointer to signed int 
+      f30: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f31: pointer to pointer to const pointer to signed int 
+      f32: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f33: pointer to const pointer to const pointer to signed int 
+      f34: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f45: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f46: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f47: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f48: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f66: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f71: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f72: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f73: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f74: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      f86: const pointer to variable length array of signed int 
+      f87: const pointer to array of constant expression 3 signed int signed int 
+      f88: pointer to static array of constant expression 3 signed int signed int 
+      f89: const pointer to static array of constant expression 3 signed int signed int 
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f95: const pointer to variable length array of pointer to signed int 
+      f96: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f97: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f98: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f99: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f104: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f105: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f106: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f107: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f113: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f114: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f115: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f116: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f117: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+int __fred__Fi_iiPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPiPiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPA0iPA0iPA0iPA0iPA0iPA0iPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPFi_i_PFi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFi_i_PPFi_i_PCPFi_i_CPCPFi_i_PFPFi___i_CPFPFi___i_CPFCPFi___i_CPiCPiPiCPiCPiCPiPiCPiCPPiCPPiPPPiCPPCPiCPCPCPiCPPiCPPiPPPiCPPCPiCPCPCPiCPA0iCPA0iPA0iCPA0iCPA0iCPA0iPA0iCPA0iCPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPiCPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPi_(int __f1__i, int __f2__i, int *__f3__Pi, int **__f4__PPi, int *const *__f5__PCPi, int *const *const __f6__CPCPi, int *__f7__Pi, int **__f8__PPi, int *const *__f9__PCPi, int *const *const __f10__CPCPi, int *__f11__Pi, int **__f12__PPi, int *const *__f13__PCPi, int *const *const __f14__CPCPi, int *__f15__Pi, int __f16__Pi[10], int *__f17__Pi, int __f18__Pi[10], int **__f19__PPi, int *__f20__PPi[10], int ***__f21__PPPi, int **__f22__PPPi[10], int *const **__f23__PPCPi, int *const *__f24__PPCPi[10], int *const *const *__f25__PCPCPi, int *const *const __f26__PCPCPi[10], int **__f27__PPi, int *__f28__PPi[10], int ***__f29__PPPi, int **__f30__PPPi[10], int *const **__f31__PPCPi, int *const *__f32__PPCPi[10], int *const *const *__f33__PCPCPi, int *const *const __f34__PCPCPi[10], int **__f35__PPi, int *__f36__PPi[10], int ***__f37__PPPi, int **__f38__PPPi[10], int *const **__f39__PPCPi, int *const *__f40__PPCPi[10], int *const *const *__f41__PCPCPi, int *const *const __f42__PCPCPi[10], int (*__f43__PA0i)[3], int __f44__PA0i[3][3], int (*__f45__PA0i)[3], int __f46__PA0i[3][3], int (*__f47__PA0i)[3], int __f48__PA0i[3][3], int *(*__f49__PA0Pi)[3], int *__f50__PA0Pi[3][3], int **(*__f51__PA0PPi)[3], int **__f52__PA0PPi[3][3], int *const *(*__f53__PA0PCPi)[3], int *const *__f54__PA0PCPi[3][3], int *const *const (*__f55__PA0CPCPi)[3], int *const *const __f56__PA0CPCPi[3][3], int *(*__f57__PA0Pi)[3], int *__f58__PA0Pi[3][3], int **(*__f59__PA0PPi)[3], int **__f60__PA0PPi[3][3], int *const *(*__f61__PA0PCPi)[3], int *const *__f62__PA0PCPi[3][3], int *const *const (*__f63__PA0CPCPi)[3], int *const *const __f64__PA0CPCPi[3][3], int (*__f65__PFi_i_)(int ), int (*__f66__PFi_i_)(int ), int *(*__f67__PFPi_i_)(int ), int **(*__f68__PFPPi_i_)(int ), int *const *(*__f69__PFPCPi_i_)(int ), int *const *const (*__f70__PFCPCPi_i_)(int ), int *(*__f71__PFPi_i_)(int ), int **(*__f72__PFPPi_i_)(int ), int *const *(*__f73__PFPCPi_i_)(int ), int *const *const (*__f74__PFCPCPi_i_)(int ), int (*__f75__PFi_i_)(int ), int (**__f76__PPFi_i_)(int ), int (*const *__f77__PCPFi_i_)(int ), int (*const *const __f78__CPCPFi_i_)(int ), int (*(*__f79__PFPFi___i_)(int ))(), int (*(*const __f80__CPFPFi___i_)(int ))(), int (*const (*const __f81__CPFCPFi___i_)(int ))(), int __f82__CPi[const *], int __f83__CPi[const 3], int __f84__Pi[static 3], int __f85__CPi[static const 3], int __f86__CPi[const *], int __f87__CPi[const 3], int __f88__Pi[static 3], int __f89__CPi[static const 3], int *__f90__CPPi[const *], int *__f91__CPPi[const 3], int **__f92__PPPi[static 3], int *const *__f93__CPPCPi[static const 3], int *const *const __f94__CPCPCPi[static const 3], int *__f95__CPPi[const *], int *__f96__CPPi[const 3], int **__f97__PPPi[static 3], int *const *__f98__CPPCPi[static const 3], int *const *const __f99__CPCPCPi[static const 3], int __f100__CPA0i[const *][3], int __f101__CPA0i[const 3][3], int __f102__PA0i[static 3][3], int __f103__CPA0i[static const 3][3], int __f104__CPA0i[const *][3], int __f105__CPA0i[const 3][3], int __f106__PA0i[static 3][3], int __f107__CPA0i[static const 3][3], int *__f108__CPA0Pi[const *][3], int *__f109__CPA0Pi[const 3][3], int **__f110__PA0PPi[static 3][3], int *const *__f111__CPA0PCPi[static const 3][3], int *const *const __f112__CPA0CPCPi[static const 3][3], int *__f113__CPA0Pi[const *][3], int *__f114__CPA0Pi[const 3][3], int **__f115__PA0PPi[static 3][3], int *const *__f116__CPA0PCPi[static const 3][3], int *const *const __f117__CPA0CPCPi[static const 3][3]){
+}
Index: src/Tests/Output-e/InferParam.txt
===================================================================
--- src/Tests/Output-e/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,358 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+g: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+                  Expression Statement:
+            Application of
+              Variable Expression: i: function
+                  with parameters
+                    float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Application of
+                  Variable Expression: g: forall
+                        T: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type T (not function type) 
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type T (not function type) 
+
+
+                        U: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type U (not function type) 
+                                  instance of type U (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+                            f: pointer to function
+                                with parameters
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                to arguments
+                                      Variable Expression: a: signed int 
+
+                with inferred parameters:
+                  ?=?: function
+                    with parameters
+                      pointer to signed int 
+                      signed int 
+                    returning 
+                      signed int 
+
+                  ?=?: function
+                    with parameters
+                      pointer to float 
+                      float 
+                    returning 
+                      float 
+
+                  f: function
+                    with parameters
+                      signed int 
+                    returning 
+                      float 
+
+
+            with environment:
+              Types:
+                _0_T -> signed int 
+                _1_U -> float 
+              Non-types:
+
+
+context has_f_and_j
+    with parameters
+      T: type
+      U: type
+
+    with members
+      f: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+      j: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type U (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+
+j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+k: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          j: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+l: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+                  Expression Statement:
+            Application of
+              Variable Expression: i: function
+                  with parameters
+                    float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Application of
+                  Variable Expression: k: forall
+                        T: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type T (not function type) 
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type T (not function type) 
+
+
+                        U: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type U (not function type) 
+                                  instance of type U (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+                            f: pointer to function
+                                with parameters
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+                            j: pointer to function
+                                with parameters
+                                  instance of type T (not function type) 
+                                  instance of type U (not function type) 
+                                returning 
+                                  instance of type U (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                to arguments
+                                      Variable Expression: b: signed int 
+
+                with inferred parameters:
+                  ?=?: function
+                    with parameters
+                      pointer to signed int 
+                      signed int 
+                    returning 
+                      signed int 
+
+                  ?=?: function
+                    with parameters
+                      pointer to float 
+                      float 
+                    returning 
+                      float 
+
+                  f: function
+                    with parameters
+                      signed int 
+                    returning 
+                      float 
+
+                  j: function
+                    with parameters
+                      signed int 
+                      float 
+                    returning 
+                      float 
+
+
+            with environment:
+              Types:
+                _0_T -> signed int 
+                _1_U -> float 
+              Non-types:
+
+
+int ___operator_assign__Fi_Pii_(int *, int );
+float ___operator_assign__Ff_Pff_(float *, float );
+double ___operator_assign__Fd_Pdd_(double *, double );
+void __g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void *, void *);
+float __f__Ff_i_(int );
+double __f__Fd_i_(int );
+void __i__F_f_(float );
+void __h__F__(){
+    int __a__i;
+    float _temp0;
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
+    }
+    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    __i__F_f_((__g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(_adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), (&_temp0), (&__a__i)) , _temp0));
+}
+;
+float __j__Ff_if_(int , float );
+void __k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(void (*_adapterF2tU_2tT2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void (*__j__PF2tU_2tT2tU_)(), void *, void *);
+void __l__F__(){
+    int __b__i;
+    float _temp1;
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
+    }
+    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    void _adapterFf_if_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(int , float ))_adaptee)((*((int *)_p0)), (*((float *)_p1))));
+    }
+    __i__F_f_((__k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(_adapterFf_if_, _adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), ((void (*)())__j__Ff_if_), (&_temp1), (&__b__i)) , _temp1));
+}
Index: src/Tests/Output-e/Initialization.txt
===================================================================
--- src/Tests/Output-e/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,398 @@
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: tuple of types
+          signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      w: tuple of types
+        signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Tuple:
+    constant expression 2 signed int 
+
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 2 signed int 
+to:
+  pointer to instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        v: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      v: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 6 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 17 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct point 
+
Index: src/Tests/Output-e/Initialization2.txt
===================================================================
--- src/Tests/Output-e/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,462 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 9 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 8 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous8 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 9 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 8 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous10 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct t 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 6 signed int 
+to:
+  instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous11 
+
Index: src/Tests/Output-e/LabelledExit.txt
===================================================================
--- src/Tests/Output-e/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error: 'continue' target label must be an enclosing loop: 
Index: src/Tests/Output-e/Members.txt
===================================================================
--- src/Tests/Output-e/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,674 @@
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+__builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+struct a_struct
+    with members
+      a: signed int 
+      a: char 
+      a: float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                              Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to char 
+                    char 
+                  returning 
+                    char 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    a: char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                              Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to float 
+                    float 
+                  returning 
+                    float 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    a: float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                              Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+union b_struct
+    with members
+      a: pointer to signed int 
+      a: pointer to char 
+      a: pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: __builtin_memcpy: function
+                    accepting unspecified arguments
+                  returning 
+                    pointer to char 
+
+            to arguments
+                              Variable Expression: _dst: pointer to instance of union b_struct 
+
+                              Address of:
+                  Variable Expression: _src: instance of union b_struct 
+
+                              Sizeof Expression on: instance of union b_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of the_struct: instance of struct a_struct 
+        Declaration of the_struct: instance of union b_struct 
+                  Expression Statement:
+            Application of
+              Variable Expression: a: function
+                  with parameters
+                    char 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Variable Expression: the_struct: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: b: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: the_struct: instance of struct a_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: c: function
+                  with parameters
+                    pointer to signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  a: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: the_struct: instance of union b_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: d: function
+                  with parameters
+                    pointer to float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  a: pointer to float 
+                from aggregate: 
+                  Variable Expression: the_struct: instance of union b_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+struct c_struct
+    with members
+      signed int 
+      char 
+      float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                              Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to char 
+                    char 
+                  returning 
+                    char 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                              Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to float 
+                    float 
+                  returning 
+                    float 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                              Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct c_struct 
+
+to:
+  instance of struct c_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+union d_struct
+    with members
+      pointer to signed int 
+      pointer to char 
+      pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union d_struct 
+      _src: instance of union d_struct 
+    returning 
+      instance of union d_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: __builtin_memcpy: function
+                    accepting unspecified arguments
+                  returning 
+                    pointer to char 
+
+            to arguments
+                              Variable Expression: _dst: pointer to instance of union d_struct 
+
+                              Address of:
+                  Variable Expression: _src: instance of union d_struct 
+
+                              Sizeof Expression on: instance of union d_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union d_struct 
+
+to:
+  instance of union d_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of x: short unsigned int 
+        Declaration of x: instance of struct c_struct 
+        Declaration of x: instance of union d_struct 
+                  Expression Statement:
+            Application of
+              Variable Expression: a: function
+                  with parameters
+                    char 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: x: short unsigned int 
+
+                to:
+                  char 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: b: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: x: short unsigned int 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: c: function
+                  with parameters
+                    pointer to signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: x: instance of union d_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: d: function
+                  with parameters
+                    pointer to float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Member Expression, with field: 
+                  pointer to float 
+                from aggregate: 
+                  Variable Expression: x: instance of union d_struct 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+struct forward
+q: pointer to instance of struct forward 
+struct forward
+    with members
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct forward 
+
+                              Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct forward 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct forward 
+
+to:
+  instance of struct forward 
+with environment:
+  Types:
+  Non-types:
+
+
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Member Expression, with field: 
+              y: signed int 
+            from aggregate: 
+              Application of
+                Variable Expression: *?: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                    returning 
+                      lvalue instance of type T (not function type) 
+
+              to arguments
+                                  Variable Expression: q: pointer to instance of struct forward 
+
+              with inferred parameters:
+                ?=?: inline static function
+                  with parameters
+                    _dst: pointer to instance of struct forward 
+                    _src: instance of struct forward 
+                  returning 
+                    instance of struct forward 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+Error: unbound type variable in application Application of
+  Variable Expression: *?: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        pointer to instance of type T (not function type) 
+      returning 
+        pointer to instance of type T (not function type) 
+
+to arguments
+      Variable Expression: q: pointer to instance of struct forward 
+
+with inferred parameters:
+  ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+
Index: src/Tests/Output-e/Misc.txt
===================================================================
--- src/Tests/Output-e/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,102 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Comma Expression:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: b: signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Comma Expression:
+                  Comma Expression:
+                    Variable Expression: a: signed int 
+
+                    Variable Expression: a: signed int 
+
+                  Variable Expression: b: signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    unsigned int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Sizeof Expression on:                   Variable Expression: a: signed int 
+
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    unsigned int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Sizeof Expression on: signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+int __a__i;
+int __b__i;
+float __b__f;
+void __g__F_i_(int );
+void __g__F_Ui_(unsigned int );
+void __f__F__(void){
+    __g__F_i_((__a__i , __b__i));
+    __g__F_i_(((__a__i , __a__i) , __b__i));
+    __g__F_Ui_(sizeof(__a__i));
+    __g__F_Ui_(sizeof(int ));
+}
Index: src/Tests/Output-e/MiscError.txt
===================================================================
--- src/Tests/Output-e/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,83 @@
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Comma Expression:
+    Name: a
+
+    Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Ambiguous expression in sizeof operand: Name: b
+
Index: src/Tests/Output-e/NamedParmArg.txt
===================================================================
--- src/Tests/Output-e/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,37 @@
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f2
+...to: 
+with designator:  Tuple:
+          Name: j
+
+          Name: i
+
+
Index: src/Tests/Output-e/NumericConstants.txt
===================================================================
--- src/Tests/Output-e/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: 1
+
Index: src/Tests/Output-e/OccursError.txt
===================================================================
--- src/Tests/Output-e/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+    Name: g
+
Index: src/Tests/Output-e/Operators.txt
===================================================================
--- src/Tests/Output-e/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,243 @@
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
+?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+struct accumulator
+    with members
+      total: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct accumulator 
+      _src: instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Address of:
+                  Member Expression, with field: 
+                    total: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct accumulator 
+
+                              Member Expression, with field: 
+                  total: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct accumulator 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct accumulator 
+
+to:
+  instance of struct accumulator 
+with environment:
+  Types:
+  Non-types:
+
+
+
+?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: char 
+        Declaration of b: char 
+                  Expression Statement:
+            Application of
+              Variable Expression: ?(): function
+                  with parameters
+                    number1: signed int 
+                    number2: signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: a: char 
+
+                to:
+                  signed int 
+
+                              Cast of:
+                  Variable Expression: b: char 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?(): function
+                  with parameters
+                    number1: signed int 
+                    number2: signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: a: char 
+
+                to:
+                  signed int 
+
+                              Cast of:
+                  Variable Expression: b: char 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: ?+?: function
+                  with parameters
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: a: char 
+
+                to:
+                  signed int 
+
+                              Cast of:
+                  Variable Expression: b: char 
+
+                to:
+                  signed int 
+
+            with environment:
+              Types:
+              Non-types:
+
+        Declaration of ?+?: instance of struct accumulator 
+                  Expression Statement:
+            Application of
+              Variable Expression: ?(): function
+                  with parameters
+                    a: instance of struct accumulator 
+                    number1: char 
+                    number2: char 
+                  returning 
+                    char 
+
+            to arguments
+                              Variable Expression: ?+?: instance of struct accumulator 
+
+                              Variable Expression: a: char 
+
+                              Variable Expression: b: char 
+
+            with environment:
+              Types:
+              Non-types:
+
+
+int ___operator_multiply__Fi_ii_(int , int );
+int ___operator_call__Fi_ii_(int __number1__i, int __number2__i){
+    return ___operator_multiply__Fi_ii_(__number1__i, __number2__i);
+}
+int ___operator_add__Fi_ii_(int , int );
+int ___operator_assign__Fi_Pii_(int *, int );
+struct accumulator
+{
+    int __total__i;
+};
+static inline struct accumulator ___operator_assign__F12saccumulator_P12saccumulator12saccumulator_(struct accumulator *___dst__P12saccumulator, struct accumulator ___src__12saccumulator){
+    ___operator_assign__Fi_Pii_((&(*___dst__P12saccumulator).__total__i), ___src__12saccumulator.__total__i);
+    return ___src__12saccumulator;
+}
+char ___operator_call__Fc_12saccumulatorcc_(struct accumulator __a__12saccumulator, char __number1__c, char __number2__c);
+void __f__F__(void){
+    char __a__c;
+    char __b__c;
+    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
+    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
+    ___operator_add__Fi_ii_(((int )__a__c), ((int )__b__c));
+    struct accumulator ___operator_add__12saccumulator;
+    ___operator_call__Fc_12saccumulatorcc_(___operator_add__12saccumulator, __a__c, __b__c);
+}
Index: src/Tests/Output-e/Quad.txt
===================================================================
--- src/Tests/Output-e/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,235 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+quad: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: square: pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+          Application of
+        Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: u: instance of type U (not function type) 
+
+
+
+to:
+  instance of type U (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Application of
+              Variable Expression: quad: forall
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+                        square: pointer to function
+                            with parameters
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    u: instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+            to arguments
+              constant expression 7 signed int 
+            with inferred parameters:
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+              ?*?: function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+              square: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+                      ?*?: pointer to function
+                          with parameters
+                            instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  t: instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            with environment:
+              Types:
+                _0_U -> signed int 
+                _1_T -> signed int 
+              Non-types:
+
+
+int ___operator_assign__Fi_Pii_(int *, int );
+int ___operator_multiply__Fi_ii_(int , int );
+void __square__A1_0_0____operator_assign__PFt0_Pt0t0____operator_multiply__PFt0_t0t0__Ft0_t0_(void (*_adapterF2tT_2tT2tT_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_multiply__PF2tT_2tT2tT_)(), void *_retparm, void *__t__2tT){
+    _adapterF2tT_2tT2tT_(___operator_multiply__PF2tT_2tT2tT_, _retparm, __t__2tT, __t__2tT);
+    return ;
+}
+void __quad__A1_0_0____operator_assign__PFt0_Pt0t0___square__PFt0_t0__Ft0_t0_(void (*_adapterF2tU_2tU_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), long unsigned int U, void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__square__PF2tU_2tU_)(), void *_retparm, void *__u__2tU){
+    void *_temp0;
+    (_temp0=__builtin_alloca(U));
+    _adapterF2tU_2tU_(__square__PF2tU_2tU_, _retparm, (_adapterF2tU_2tU_(__square__PF2tU_2tU_, _temp0, __u__2tU) , _temp0));
+    return ;
+}
+void __f__F__(){
+    int _thunk0(int _p0){
+        int _temp1;
+        void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+            ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+        }
+        void _adapterFi_ii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+            ((*((int *)_ret))=((int (*)(int , int ))_adaptee)((*((int *)_p0)), (*((int *)_p1))));
+        }
+        return (__square__A1_0_0____operator_assign__PFt0_Pt0t0____operator_multiply__PFt0_t0t0__Ft0_t0_(_adapterFi_ii_, _adapterFi_Pii_, sizeof(int ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_multiply__Fi_ii_), (&_temp1), (&_p0)) , _temp1);
+    }
+    int _temp2;
+    int _temp3;
+    (_temp3=7);
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFi_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((int *)_ret))=((int (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    (__quad__A1_0_0____operator_assign__PFt0_Pt0t0___square__PFt0_t0__Ft0_t0_(_adapterFi_i_, _adapterFi_Pii_, sizeof(int ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())(&_thunk0)), (&_temp2), (&_temp3)) , _temp2);
+}
Index: src/Tests/Output-e/Rank2.txt
===================================================================
--- src/Tests/Output-e/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,301 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+a: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+        Declaration of g: function
+            with parameters
+              p: pointer to forall
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    p: pointer to forall
+                          U: type
+                            with assertions
+                              ?=?: pointer to function
+                                  with parameters
+                                    pointer to instance of type U (not function type) 
+                                    instance of type U (not function type) 
+                                  returning 
+                                    instance of type U (not function type) 
+
+
+                        function
+                        with parameters
+                          instance of type U (not function type) 
+                        returning 
+                          nothing 
+
+                  returning 
+                    nothing 
+
+            to arguments
+                              Variable Expression: f: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      nothing 
+
+
+            with inferred parameters:
+              ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            with environment:
+              Types:
+                _1_T -> instance of type _0_U (not function type) 
+              Non-types:
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of h: function
+            with parameters
+              null: pointer to signed int 
+            returning 
+              nothing 
+
+        Declaration of id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+        Declaration of 0: signed int 
+                  Expression Statement:
+            Application of
+              Variable Expression: h: function
+                  with parameters
+                    null: pointer to signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Application of
+                  Variable Expression: id: forall
+                        T: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type T (not function type) 
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type T (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                to arguments
+                                      Application of
+                      Variable Expression: id: forall
+                            T: type
+                              with assertions
+                                ?=?: pointer to function
+                                    with parameters
+                                      pointer to instance of type T (not function type) 
+                                      instance of type T (not function type) 
+                                    returning 
+                                      instance of type T (not function type) 
+
+
+                          function
+                          with parameters
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+                    to arguments
+                                              Application of
+                          Variable Expression: id: forall
+                                T: type
+                                  with assertions
+                                    ?=?: pointer to function
+                                        with parameters
+                                          pointer to instance of type T (not function type) 
+                                          instance of type T (not function type) 
+                                        returning 
+                                          instance of type T (not function type) 
+
+
+                              function
+                              with parameters
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+                        to arguments
+                                                      Variable Expression: 0: forall
+                                  T: incomplete type
+                                pointer to instance of type T (not function type) 
+
+                        with inferred parameters:
+                          ?=?: forall
+                              DT: incomplete type
+                            function
+                            with parameters
+                              pointer to pointer to instance of type DT (not function type) 
+                              pointer to instance of type DT (not function type) 
+                            returning 
+                              pointer to instance of type DT (not function type) 
+
+
+                    with inferred parameters:
+                      ?=?: forall
+                          DT: incomplete type
+                        function
+                        with parameters
+                          pointer to pointer to instance of type DT (not function type) 
+                          pointer to instance of type DT (not function type) 
+                        returning 
+                          pointer to instance of type DT (not function type) 
+
+
+                with inferred parameters:
+                  ?=?: forall
+                      DT: incomplete type
+                    function
+                    with parameters
+                      pointer to pointer to instance of type DT (not function type) 
+                      pointer to instance of type DT (not function type) 
+                    returning 
+                      pointer to instance of type DT (not function type) 
+
+
+            with environment:
+              Types:
+                _0_T -> forall
+                      _3_T: incomplete type
+                    pointer to instance of type _3_T (not function type) 
+                _1_T -> forall
+                      _3_T: incomplete type
+                    pointer to instance of type _3_T (not function type) 
+                _2_T -> forall
+                      _3_T: incomplete type
+                    pointer to instance of type _3_T (not function type) 
+                _3_T -> signed int 
+                _5_DT -> signed int 
+                _7_DT -> signed int 
+                _9_DT -> signed int 
+              Non-types:
+
+
+int ___operator_assign__Fi_Pii_(int *, int );
+void *___operator_assign__A0_1_0__FPd0_PPd0Pd0_(void **, void *);
+void __a__F__(){
+    void __f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *);
+    void __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(void (*__p__PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0_)(void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), long unsigned int U, void (*___operator_assign__PF2tU_P2tU2tU_)(), void *));
+    __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(__f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_);
+}
+void __g__F__(){
+    void __h__F_Pi_(int *__null__Pi);
+    void __id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *, void *);
+    void *___constant_zero__A0_1_0__Pd0;
+    int ___constant_zero__i;
+    void *_thunk0(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_thunk1(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_thunk2(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_temp0;
+    void _adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((_3_T **)_ret))=((void *(*)(void **, void *))_adaptee)(_p0, (*((_3_T **)_p1))));
+    }
+    void *_temp1;
+    void *_temp2;
+    __h__F_Pi_((__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk2)), (&_temp2), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk1)), (&_temp1), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk0)), (&_temp0), (&___constant_zero__A0_1_0__Pd0)) , _temp0))) , _temp1))) , _temp2));
+}
Index: src/Tests/Output-e/Scope.txt
===================================================================
--- src/Tests/Output-e/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,73 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      b: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+to:
+  pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: y
+
+to:
+  instance of type u (not function type) 
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: z
+    Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+    Name: y
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: q
+    Name: y
+
+Error: No reasonable alternatives for expression Name: some_func
+
Index: src/Tests/Output-e/ScopeErrors.txt
===================================================================
--- src/Tests/Output-e/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Output-e/ShortCircuit.txt
===================================================================
--- src/Tests/Output-e/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,188 @@
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+0: signed int 
+g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      a: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+        Declaration of c: float 
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    float 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Conditional expression on: 
+                  Cast of:
+                    Application of
+                      Variable Expression: ?!=?: function
+                          with parameters
+                            signed int 
+                            signed int 
+                          returning 
+                            signed int 
+
+                    to arguments
+                                              Variable Expression: a: signed int 
+
+                                              Variable Expression: 0: signed int 
+
+
+                  to:
+                    signed int 
+                First alternative:
+                  Variable Expression: b: signed int 
+                Second alternative:
+                  Variable Expression: c: float 
+
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+            with environment:
+              Types:
+              Non-types:
+
+                  Expression Statement:
+            Application of
+              Variable Expression: g: function
+                  with parameters
+                    signed int 
+                  returning 
+                    nothing 
+
+            to arguments
+                              Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+            with environment:
+              Types:
+              Non-types:
+
+
+int ___operator_notequal__Fi_ii_(int , int );
+int ___operator_notequal__Fi_ff_(float , float );
+int ___constant_zero__i;
+void __g__F_f_(float );
+void __g__F_i_(int );
+void __f__F_i_(int __a__i){
+    int __b__i;
+    float __c__f;
+    __g__F_f_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) ? __b__i : __c__f));
+    __g__F_i_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) && ((int )___operator_notequal__Fi_ff_(__c__f, ((float )___constant_zero__i)))));
+    __g__F_i_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) || ((int )___operator_notequal__Fi_ii_(__b__i, ___constant_zero__i))));
+}
Index: src/Tests/Output-e/Statement.txt
===================================================================
--- src/Tests/Output-e/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,190 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+0: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of struct __anonymous0
+            with members
+              b: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Application of
+                      Variable Expression: ?=?: function
+                          with parameters
+                            pointer to signed int 
+                            signed int 
+                          returning 
+                            signed int 
+
+                    to arguments
+                                              Address of:
+                          Member Expression, with field: 
+                            b: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous0 
+
+                                              Member Expression, with field: 
+                          b: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous0 
+
+                    with environment:
+                      Types:
+                      Non-types:
+
+                                  Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+        Declaration of a: instance of struct __anonymous0 
+                  If on condition: 
+              Cast of:
+                Application of
+                  Variable Expression: ?!=?: function
+                      with parameters
+                        signed int 
+                        signed int 
+                      returning 
+                        signed int 
+
+                to arguments
+                                      Variable Expression: a: signed int 
+
+                                      Variable Expression: 0: signed int 
+
+
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+          .... and branches: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Application of
+                          Variable Expression: ?!=?: function
+                              with parameters
+                                signed int 
+                                signed int 
+                              returning 
+                                signed int 
+
+                        to arguments
+                                                      Variable Expression: a: signed int 
+
+                                                      Variable Expression: 0: signed int 
+
+
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+                  .... with body: 
+                      CompoundStmt
+                        Declaration of b: pointer to signed int 
+                                                  Labels: {}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Variable Expression: b: pointer to signed int 
+                                with environment:
+                                  Types:
+                                  Non-types:
+
+                            condition: 
+                              Cast of:
+                                Application of
+                                  Variable Expression: ?!=?: function
+                                      with parameters
+                                        signed int 
+                                        signed int 
+                                      returning 
+                                        signed int 
+
+                                to arguments
+                                                                      Variable Expression: a: signed int 
+
+                                                                      Variable Expression: 0: signed int 
+
+
+                              to:
+                                signed int 
+                              with environment:
+                                Types:
+                                Non-types:
+
+                            increment: 
+                              Variable Expression: b: pointer to signed int 
+                              with environment:
+                                Types:
+                                Non-types:
+
+                            statement block: 
+                              CompoundStmt
+
+
+
+
+
+int ___operator_assign__Fi_Pii_(int *, int );
+int ___operator_notequal__Fi_ii_(int , int );
+int ___constant_zero__i;
+void __f__F__(){
+    int __a__i;
+    struct __anonymous0
+    {
+        int __b__i;
+    };
+    inline struct __anonymous0 ___operator_assign__F13s__anonymous0_P13s__anonymous013s__anonymous0_(struct __anonymous0 *___dst__P13s__anonymous0, struct __anonymous0 ___src__13s__anonymous0){
+        ___operator_assign__Fi_Pii_((&(*___dst__P13s__anonymous0).__b__i), ___src__13s__anonymous0.__b__i);
+        return ___src__13s__anonymous0;
+    }
+    struct __anonymous0 __a__13s__anonymous0;
+    if (((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i))) {
+        while (((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i))) {
+            int *__b__Pi;
+            for (__b__Pi;((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i));__b__Pi) {
+            }
+
+        }        
+
+    }
+
+}
Index: src/Tests/Output-e/StructMember.txt
===================================================================
--- src/Tests/Output-e/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,560 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m1: signed int with bitfield width constant expression 3 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m1: signed int with bitfield width constant expression 3 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m2: signed int with bitfield width constant expression 4 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m2: signed int with bitfield width constant expression 4 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m4: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m4: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m5: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m5: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m6: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m6: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m7: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m7: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m8: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m8: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m9: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m9: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m10: pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m11: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m12: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m12: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m13: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m13: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m14: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Name: __builtin_memcpy
+
Index: src/Tests/Output-e/Subrange.txt
===================================================================
--- src/Tests/Output-e/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,49 @@
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+to:
+  pointer to instance of type base_t (not function type) 
+
+Error: No reasonable alternatives for expression Name: low
+
+Error: No reasonable alternatives for expression Name: high
+
+Error: No reasonable alternatives for expression Cast of:
+  Applying untyped: 
+      Name: lbound
+  ...to: 
+      Name: day_of_month
+
+to:
+  unsigned int 
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: target
+
+to:
+  instance of type subrange (not function type) 
+    with parameters
+      instance of type T (not function type) 
+              Name: low
+
+              Name: high
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: target
+
+to:
+  instance of type subrange (not function type) 
+    with parameters
+      instance of type T (not function type) 
+              Name: t_low
+
+              Name: t_high
+
+
+
Index: src/Tests/Output-e/Switch.txt
===================================================================
--- src/Tests/Output-e/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-e/Tuple.txt
===================================================================
--- src/Tests/Output-e/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,228 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f4: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f4: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: x: short signed int 
+    Variable Expression: w: signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: r
+    Tuple:
+              Name: x
+
+              Name: y
+
+              Name: z
+
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: a: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+    Tuple:
+      constant expression 4.6 double 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: c: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+                  Tuple:
+                          Name: c
+
+
+    Tuple:
+      constant expression 2 signed int 
+              Tuple:
+                      Name: a
+
+                      Name: b
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: c
+
+                  Name: d
+
+    Name: t1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Address of:
+  Tuple:
+    constant expression 3 signed int 
+    constant expression 4 signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: s
+    Tuple:
+      constant expression 11 signed int 
+      constant expression 12 signed int 
+      constant expression 13 signed int 
+      constant expression 3.14159 double 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: sp
+    Name: sp
+
+Error: No reasonable alternatives for expression Name: 0
+
Index: src/Tests/Output-e/TypeGenerator.txt
===================================================================
--- src/Tests/Output-e/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,148 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      next: pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+to:
+  pointer to pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S2 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      next: pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type List (not function type) 
+
+to:
+  pointer to pointer to instance of struct node 
+    with parameters
+      instance of type T (not function type) 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: my_list
+
+to:
+  instance of struct node 
+    with parameters
+      signed int 
+
+
Index: src/Tests/Output-e/Typedef.txt
===================================================================
--- src/Tests/Output-e/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,21 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous0 
+
Index: src/Tests/Output-e/TypedefDeclarator.txt
===================================================================
--- src/Tests/Output-e/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,443 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of           Cast of:
+constant expression 10 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of           Cast of:
+constant expression 3 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
+int main(){
+    int __f1__i;
+    int __f2__i;
+    int *__f3__Pi;
+    int **__f4__PPi;
+    int *const *__f5__PCPi;
+    int *const *const __f6__CPCPi;
+    int *__f7__Pi;
+    int **__f8__PPi;
+    int *const *__f9__PCPi;
+    int *const *const __f10__CPCPi;
+    int *__f11__Pi;
+    int **__f12__PPi;
+    int *const *__f13__PCPi;
+    int *const *const __f14__CPCPi;
+    int __f15__A0i[];
+    int __f16__A0i[((long unsigned int )10)];
+    int __f17__A0i[];
+    int __f18__A0i[((long unsigned int )10)];
+    int *__f19__A0Pi[];
+    int *__f20__A0Pi[((long unsigned int )10)];
+    int **__f21__A0PPi[];
+    int **__f22__A0PPi[((long unsigned int )10)];
+    int *const *__f23__A0PCPi[];
+    int *const *__f24__A0PCPi[((long unsigned int )10)];
+    int *const *const __f25__A0CPCPi[];
+    int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+    int *__f27__A0Pi[];
+    int *__f28__A0Pi[((long unsigned int )10)];
+    int **__f29__A0PPi[];
+    int **__f30__A0PPi[((long unsigned int )10)];
+    int *const *__f31__A0PCPi[];
+    int *const *__f32__A0PCPi[((long unsigned int )10)];
+    int *const *const __f33__A0CPCPi[];
+    int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+    int *__f35__A0Pi[];
+    int *__f36__A0Pi[((long unsigned int )10)];
+    int **__f37__A0PPi[];
+    int **__f38__A0PPi[((long unsigned int )10)];
+    int *const *__f39__A0PCPi[];
+    int *const *__f40__A0PCPi[((long unsigned int )10)];
+    int *const *const __f41__A0CPCPi[];
+    int *const *const __f42__A0CPCPi[((long unsigned int )10)];
+    int __f43__A0A0i[][3];
+    int __f44__A0A0i[((long unsigned int )3)][3];
+    int __f45__A0A0i[][3];
+    int __f46__A0A0i[((long unsigned int )3)][3];
+    int __f47__A0A0i[][3];
+    int __f48__A0A0i[((long unsigned int )3)][3];
+    int *__f49__A0A0Pi[][3];
+    int *__f50__A0A0Pi[((long unsigned int )3)][3];
+    int **__f51__A0A0PPi[][3];
+    int **__f52__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f53__A0A0PCPi[][3];
+    int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f55__A0A0CPCPi[][3];
+    int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+    int *__f57__A0A0Pi[][3];
+    int *__f58__A0A0Pi[((long unsigned int )3)][3];
+    int **__f59__A0A0PPi[][3];
+    int **__f60__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f61__A0A0PCPi[][3];
+    int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f63__A0A0CPCPi[][3];
+    int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+    int __f65__Fi_i_(int );
+    int __f66__Fi_i_(int );
+    int *__f67__FPi_i_(int );
+    int **__f68__FPPi_i_(int );
+    int *const *__f69__FPCPi_i_(int );
+    int *const *const __f70__FCPCPi_i_(int );
+    int *__f71__FPi_i_(int );
+    int **__f72__FPPi_i_(int );
+    int *const *__f73__FPCPi_i_(int );
+    int *const *const __f74__FCPCPi_i_(int );
+    int (*__f75__PFi_i_)(int );
+    int (**__f76__PPFi_i_)(int );
+    int (*const *__f77__PCPFi_i_)(int );
+    int (*const *const __f78__CPCPFi_i_)(int );
+    int (*(*__f79__PFPFi___i_)(int ))();
+    int (*(*const __f80__CPFPFi___i_)(int ))();
+    int (*const (*const __f81__CPFCPFi___i_)(int ))();
+}
Index: src/Tests/Output-e/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Output-e/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,264 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+int __fred__Fi_iPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPA0iPA0iPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPFi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFi_i_PPFi_i_PCPFi_i_CPCPFi_i_PFPFi___i_CPFPFi___i_CPFCPFi___i_CPiCPiPiCPiPFi_CPi_PFi_CPi_PFi_Pi_PFi_CPi_CPPiCPPiPPPiCPPCPiCPCPCPiPFPi_CPi_PFPi_CPi_PFPPi_Pi_PFPCPi_CPi_PFCPCPi_CPi_CPA0iCPA0iPA0iCPA0iPFi_CPA0i_PFi_CPA0i_PFi_PA0i_PFi_CPA0i_CPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPiPFPi_CPA0i_PFPi_CPA0i_PFPPi_PA0i_PFPCPi_CPA0i_PFCPCPi_CPA0i__(int __f1__i, int *__f3__Pi, int **__f4__PPi, int *const *__f5__PCPi, int *const *const __f6__CPCPi, int *__f11__Pi, int **__f12__PPi, int *const *__f13__PCPi, int *const *const __f14__CPCPi, int *__f15__Pi, int __f16__Pi[10], int **__f19__PPi, int *__f20__PPi[10], int ***__f21__PPPi, int **__f22__PPPi[10], int *const **__f23__PPCPi, int *const *__f24__PPCPi[10], int *const *const *__f25__PCPCPi, int *const *const __f26__PCPCPi[10], int **__f35__PPi, int *__f36__PPi[10], int ***__f37__PPPi, int **__f38__PPPi[10], int *const **__f39__PPCPi, int *const *__f40__PPCPi[10], int *const *const *__f41__PCPCPi, int *const *const __f42__PCPCPi[10], int (*__f43__PA0i)[3], int __f44__PA0i[3][3], int *(*__f49__PA0Pi)[3], int *__f50__PA0Pi[3][3], int **(*__f51__PA0PPi)[3], int **__f52__PA0PPi[3][3], int *const *(*__f53__PA0PCPi)[3], int *const *__f54__PA0PCPi[3][3], int *const *const (*__f55__PA0CPCPi)[3], int *const *const __f56__PA0CPCPi[3][3], int *(*__f57__PA0Pi)[3], int *__f58__PA0Pi[3][3], int **(*__f59__PA0PPi)[3], int **__f60__PA0PPi[3][3], int *const *(*__f61__PA0PCPi)[3], int *const *__f62__PA0PCPi[3][3], int *const *const (*__f63__PA0CPCPi)[3], int *const *const __f64__PA0CPCPi[3][3], int (*__f65__PFi_i_)(int ), int *(*__f67__PFPi_i_)(int ), int **(*__f68__PFPPi_i_)(int ), int *const *(*__f69__PFPCPi_i_)(int ), int *const *const (*__f70__PFCPCPi_i_)(int ), int (*__f75__PFi_i_)(int ), int (**__f76__PPFi_i_)(int ), int (*const *__f77__PCPFi_i_)(int ), int (*const *const __f78__CPCPFi_i_)(int ), int (*(*__f79__PFPFi___i_)(int ))(), int (*(*const __f80__CPFPFi___i_)(int ))(), int (*const (*const __f81__CPFCPFi___i_)(int ))(), int __f82__CPi[const *], int __f83__CPi[const 3], int __f84__Pi[static 3], int __f85__CPi[static const 3], int (*)(int [const *]), int (*)(int [const 3]), int (*)(int [static 3]), int (*)(int [static const 3]), int *__f90__CPPi[const *], int *__f91__CPPi[const 3], int **__f92__PPPi[static 3], int *const *__f93__CPPCPi[static const 3], int *const *const __f94__CPCPCPi[static const 3], int *(*)(int [const *]), int *(*)(int [const 3]), int **(*)(int [static 3]), int *const *(*)(int [static const 3]), int *const *const (*)(int [static const 3]), int __f100__CPA0i[const *][3], int __f101__CPA0i[const 3][3], int __f102__PA0i[static 3][3], int __f103__CPA0i[static const 3][3], int (*)(int [const *][3]), int (*)(int [const 3][3]), int (*)(int [static 3][3]), int (*)(int [static const 3][3]), int *__f108__CPA0Pi[const *][3], int *__f109__CPA0Pi[const 3][3], int **__f110__PA0PPi[static 3][3], int *const *__f111__CPA0PCPi[static const 3][3], int *const *const __f112__CPA0CPCPi[static const 3][3], int *(*)(int [const *][3]), int *(*)(int [const 3][3]), int **(*)(int [static 3][3]), int *const *(*)(int [static const 3][3]), int *const *const (*)(int [static const 3][3])){
+}
Index: src/Tests/Output-e/Typeof.txt
===================================================================
--- src/Tests/Output-e/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: *?
+
Index: src/Tests/Output-e/VariableDeclarator.txt
===================================================================
--- src/Tests/Output-e/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,590 @@
+f1: signed int 
+f2: signed int 
+f3: pointer to signed int 
+f4: pointer to pointer to signed int 
+f5: pointer to const pointer to signed int 
+f6: const pointer to const pointer to signed int 
+f7: pointer to signed int 
+f8: pointer to pointer to signed int 
+f9: pointer to const pointer to signed int 
+f10: const pointer to const pointer to signed int 
+f11: pointer to signed int 
+f12: pointer to pointer to signed int 
+f13: pointer to const pointer to signed int 
+f14: const pointer to const pointer to signed int 
+f15: open array of signed int 
+f16: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f17: open array of signed int 
+f18: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f19: open array of pointer to signed int 
+f20: array of pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f21: open array of pointer to pointer to signed int 
+f22: array of pointer to pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f23: open array of pointer to const pointer to signed int 
+f24: array of pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f25: open array of const pointer to const pointer to signed int 
+f26: array of const pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f27: open array of pointer to signed int 
+f28: array of pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f29: open array of pointer to pointer to signed int 
+f30: array of pointer to pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f31: open array of pointer to const pointer to signed int 
+f32: array of pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f33: open array of const pointer to const pointer to signed int 
+f34: array of const pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f35: pointer to open array of signed int 
+f36: pointer to array of signed int with dimension of constant expression 10 signed int 
+f37: pointer to pointer to open array of signed int 
+f38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+f39: pointer to const pointer to open array of signed int 
+f40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f41: const pointer to const pointer to open array of signed int 
+f42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f43: open array of array of signed int with dimension of constant expression 3 signed int 
+f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f45: open array of array of signed int with dimension of constant expression 3 signed int 
+f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f47: open array of array of signed int with dimension of constant expression 3 signed int 
+f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+f65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f69: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f71: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f72: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f73: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f74: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f75: pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f76: pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f77: pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f78: const pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f79: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f80: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f81: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      const pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+cf3: pointer to signed int 
+cf4: pointer to pointer to signed int 
+cf5: pointer to const pointer to signed int 
+cf6: const pointer to const pointer to signed int 
+cf15: open array of signed int 
+cf16: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf19: open array of pointer to signed int 
+cf20: array of pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf21: open array of pointer to pointer to signed int 
+cf22: array of pointer to pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf23: open array of pointer to const pointer to signed int 
+cf24: array of pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf25: open array of const pointer to const pointer to signed int 
+cf26: array of const pointer to const pointer to signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf35: pointer to open array of signed int 
+cf36: pointer to array of signed int with dimension of constant expression 10 signed int 
+cf37: pointer to pointer to open array of signed int 
+cf38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+cf39: pointer to const pointer to open array of signed int 
+cf40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf41: const pointer to const pointer to open array of signed int 
+cf42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf43: open array of array of signed int with dimension of constant expression 3 signed int 
+cf44: array of array of signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+cf50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+cf52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf53: open array of array of const pointer to signed int with dimension of constant expression 3 signed int 
+cf54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+cf56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of   Cast of:
+constant expression 3 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+cf65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+cf68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+cf69: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to pointer to signed int 
+
+cf70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+v3: pointer to open array of pointer to open array of pointer to function
+    with parameters
+      pointer to open array of pointer to open array of signed int 
+      pointer to open array of pointer to open array of signed int 
+    returning 
+      pointer to open array of pointer to open array of signed int 
+
+int __f1__i;
+int __f2__i;
+int *__f3__Pi;
+int **__f4__PPi;
+int *const *__f5__PCPi;
+int *const *const __f6__CPCPi;
+int *__f7__Pi;
+int **__f8__PPi;
+int *const *__f9__PCPi;
+int *const *const __f10__CPCPi;
+int *__f11__Pi;
+int **__f12__PPi;
+int *const *__f13__PCPi;
+int *const *const __f14__CPCPi;
+int __f15__A0i[];
+int __f16__A0i[((long unsigned int )10)];
+int __f17__A0i[];
+int __f18__A0i[((long unsigned int )10)];
+int *__f19__A0Pi[];
+int *__f20__A0Pi[((long unsigned int )10)];
+int **__f21__A0PPi[];
+int **__f22__A0PPi[((long unsigned int )10)];
+int *const *__f23__A0PCPi[];
+int *const *__f24__A0PCPi[((long unsigned int )10)];
+int *const *const __f25__A0CPCPi[];
+int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+int *__f27__A0Pi[];
+int *__f28__A0Pi[((long unsigned int )10)];
+int **__f29__A0PPi[];
+int **__f30__A0PPi[((long unsigned int )10)];
+int *const *__f31__A0PCPi[];
+int *const *__f32__A0PCPi[((long unsigned int )10)];
+int *const *const __f33__A0CPCPi[];
+int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+int (*__f35__PA0i)[];
+int (*__f36__PA0i)[10];
+int (**__f37__PPA0i)[];
+int (**__f38__PPA0i)[10];
+int (*const *__f39__PCPA0i)[];
+int (*const *__f40__PCPA0i)[10];
+int (*const *const __f41__CPCPA0i)[];
+int (*const *const __f42__CPCPA0i)[10];
+int __f43__A0A0i[][3];
+int __f44__A0A0i[((long unsigned int )3)][3];
+int __f45__A0A0i[][3];
+int __f46__A0A0i[((long unsigned int )3)][3];
+int __f47__A0A0i[][3];
+int __f48__A0A0i[((long unsigned int )3)][3];
+int *__f49__A0A0Pi[][3];
+int *__f50__A0A0Pi[((long unsigned int )3)][3];
+int **__f51__A0A0PPi[][3];
+int **__f52__A0A0PPi[((long unsigned int )3)][3];
+int *const *__f53__A0A0PCPi[][3];
+int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __f55__A0A0CPCPi[][3];
+int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+int *__f57__A0A0Pi[][3];
+int *__f58__A0A0Pi[((long unsigned int )3)][3];
+int **__f59__A0A0PPi[][3];
+int **__f60__A0A0PPi[((long unsigned int )3)][3];
+int *const *__f61__A0A0PCPi[][3];
+int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __f63__A0A0CPCPi[][3];
+int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+int __f65__Fi_i_(int );
+int __f66__Fi_i_(int );
+int *__f67__FPi_i_(int );
+int **__f68__FPPi_i_(int );
+int *const *__f69__FPCPi_i_(int );
+int *const *const __f70__FCPCPi_i_(int );
+int *__f71__FPi_i_(int );
+int **__f72__FPPi_i_(int );
+int *const *__f73__FPCPi_i_(int );
+int *const *const __f74__FCPCPi_i_(int );
+int (*__f75__PFi_i_)(int );
+int (**__f76__PPFi_i_)(int );
+int (*const *__f77__PCPFi_i_)(int );
+int (*const *const __f78__CPCPFi_i_)(int );
+int (*(*__f79__PFPFi___i_)(int ))();
+int (*(*const __f80__CPFPFi___i_)(int ))();
+int (*const (*const __f81__CPFCPFi___i_)(int ))();
+int *__cf3__Pi;
+int **__cf4__PPi;
+int *const *__cf5__PCPi;
+int *const *const __cf6__CPCPi;
+int __cf15__A0i[];
+int __cf16__A0i[((long unsigned int )10)];
+int *__cf19__A0Pi[];
+int *__cf20__A0Pi[((long unsigned int )10)];
+int **__cf21__A0PPi[];
+int **__cf22__A0PPi[((long unsigned int )10)];
+int *const *__cf23__A0PCPi[];
+int *const *__cf24__A0PCPi[((long unsigned int )10)];
+int *const *const __cf25__A0CPCPi[];
+int *const *const __cf26__A0CPCPi[((long unsigned int )10)];
+int (*__cf35__PA0i)[];
+int (*__cf36__PA0i)[10];
+int (**__cf37__PPA0i)[];
+int (**__cf38__PPA0i)[10];
+int (*const *__cf39__PCPA0i)[];
+int (*const *__cf40__PCPA0i)[10];
+int (*const *const __cf41__CPCPA0i)[];
+int (*const *const __cf42__CPCPA0i)[10];
+int __cf43__A0A0i[][3];
+int __cf44__A0A0i[((long unsigned int )3)][3];
+int *__cf49__A0A0Pi[][3];
+int *__cf50__A0A0Pi[((long unsigned int )3)][3];
+int **__cf51__A0A0PPi[][3];
+int **__cf52__A0A0PPi[((long unsigned int )3)][3];
+int *const __cf53__A0A0CPi[][3];
+int *const *__cf54__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __cf55__A0A0CPCPi[][3];
+int *const *const __cf56__A0A0CPCPi[((long unsigned int )3)][3];
+int __cf65__Fi_i_(int );
+int __cf66__Fi_i_(int );
+int *__cf67__FPi_i_(int );
+int **__cf68__FPPi_i_(int );
+int **const __cf69__FCPPi_i_(int );
+int *const *const __cf70__FCPCPi_i_(int );
+int (*(*(*(*(*__v3__PA0PA0PFPA0PA0i_PA0PA0iPA0PA0i_)[])[])(int (*(*)[])[], int (*(*)[])[]))[])[];
Index: src/Tests/Output-e/gcc900407-1.txt
===================================================================
--- src/Tests/Output-e/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-e/gcc900516-1.txt
===================================================================
--- src/Tests/Output-e/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: !?
+
Index: src/Tests/Output-e/gcc920301-1.txt
===================================================================
--- src/Tests/Output-e/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,33 @@
+f: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of t: static open array of pointer to void 
+                  Null Statement
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: static array of unsigned int with dimension of           Cast of:
+constant expression 5 signed int 
+          to:
+            long unsigned int 
+          with environment:
+            Types:
+            Non-types:
+
+
+int __f__Fi__(){
+    static void *__t__A0Pv[];
+    __L1__: /* null statement */ ;
+
+}
+int __g__Fi__(){
+    static unsigned int __p__A0Ui[((long unsigned int )5)];
+}
Index: src/Tests/Output-e/gcc920409-1.txt
===================================================================
--- src/Tests/Output-e/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Output-e/gcc920409-2.txt
===================================================================
--- src/Tests/Output-e/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-e/gcc920410-2.txt
===================================================================
--- src/Tests/Output-e/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Output-e/gcc920501-1.txt
===================================================================
--- src/Tests/Output-e/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Segmentation fault (core dumped)
Index: src/Tests/Output-e/gcc920501-11.txt
===================================================================
--- src/Tests/Output-e/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Output-e/gcc920501-19.txt
===================================================================
--- src/Tests/Output-e/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-e/report
===================================================================
--- src/Tests/Output-e/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-e/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Output-f/Abstype.txt
===================================================================
--- src/Tests/Output-f/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of type U (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
Index: src/Tests/Output-f/Attributes.txt
===================================================================
--- src/Tests/Output-f/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Output-f/Cast.txt
===================================================================
--- src/Tests/Output-f/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+There are 1 alternatives
+Alternative 1 ==============
+long signed int 
+long double 
+pointer to function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
Index: src/Tests/Output-f/CastError.txt
===================================================================
--- src/Tests/Output-f/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,36 @@
+Error: Can't choose between alternatives for expression Cast of:
+  Name: f
+
+to:
+  char 
+Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: signed int 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: double 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: f
+
+to:
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+
Index: src/Tests/Output-f/CharStringConstants.txt
===================================================================
--- src/Tests/Output-f/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,248 @@
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
Index: src/Tests/Output-f/Constant0-1.txt
===================================================================
--- src/Tests/Output-f/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,112 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
Index: src/Tests/Output-f/DeclarationErrors.txt
===================================================================
--- src/Tests/Output-f/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-f/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Output-f/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-f/Exception.txt
===================================================================
--- src/Tests/Output-f/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?/?
+
Index: src/Tests/Output-f/Expression.txt
===================================================================
--- src/Tests/Output-f/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,101 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s 
+
+Error: No reasonable alternatives for expression Name: !?
+
+Error: No reasonable alternatives for expression Name: ~?
+
+Error: No reasonable alternatives for expression Name: +?
+
+Error: No reasonable alternatives for expression Name: -?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ++?
+
+Error: No reasonable alternatives for expression Name: --?
+
+Error: No reasonable alternatives for expression Name: ?++
+
+Error: No reasonable alternatives for expression Name: ?--
+
+Error: No reasonable alternatives for expression Name: ?+?
+
+Error: No reasonable alternatives for expression Name: ?-?
+
+Error: No reasonable alternatives for expression Name: ?*?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
+Error: No reasonable alternatives for expression Name: ?%?
+
+Error: No reasonable alternatives for expression Name: ?^?
+
+Error: No reasonable alternatives for expression Name: ?&?
+
+Error: No reasonable alternatives for expression Name: ?|?
+
+Error: No reasonable alternatives for expression Name: ?<?
+
+Error: No reasonable alternatives for expression Name: ?>?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: i
+
+Error: No reasonable alternatives for expression Name: ?==?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?<<?
+
+Error: No reasonable alternatives for expression Name: ?>>?
+
+Error: No reasonable alternatives for expression Name: ?<=?
+
+Error: No reasonable alternatives for expression Name: ?>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?-=?
+
+Error: No reasonable alternatives for expression Name: ?*=?
+
+Error: No reasonable alternatives for expression Name: ?/=?
+
+Error: No reasonable alternatives for expression Name: ?%=?
+
+Error: No reasonable alternatives for expression Name: ?&=?
+
+Error: No reasonable alternatives for expression Name: ?|=?
+
+Error: No reasonable alternatives for expression Name: ?^=?
+
+Error: No reasonable alternatives for expression Name: ?<<=?
+
+Error: No reasonable alternatives for expression Name: ?>>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Output-f/Forall.txt
===================================================================
--- src/Tests/Output-f/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,108 @@
+There are 2 alternatives
+Alternative 1 ==============
+signed int 
+
+Alternative 2 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to function
+    returning 
+      nothing 
+
+
+There are 2 alternatives
+Alternative 1 ==============
+char 
+
+Alternative 2 ==============
+
+There are 2 alternatives
+Alternative 1 ==============
+float 
+
+Alternative 2 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type T (not function type) 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type P1 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: instance of type P1 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        j: instance of type P2 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      j: instance of type P2 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: twice
+...to: 
+    Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: min
+...to: 
+constant expression 4.0 double constant expression 3.0 double 
Index: src/Tests/Output-f/Function.txt
===================================================================
--- src/Tests/Output-f/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+There are 2 alternatives
+Alternative 1 ==============
+signed int 
+
+Alternative 2 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+signed int 
+
Index: src/Tests/Output-f/Functions.txt
===================================================================
--- src/Tests/Output-f/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,7 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-f/GccExtensions.txt
===================================================================
--- src/Tests/Output-f/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,48 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s4 
+
Index: src/Tests/Output-f/InferParam.txt
===================================================================
--- src/Tests/Output-f/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
Index: src/Tests/Output-f/Initialization.txt
===================================================================
--- src/Tests/Output-f/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,316 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: tuple of types
+          signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      w: tuple of types
+        signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        v: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      v: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
Index: src/Tests/Output-f/Initialization2.txt
===================================================================
--- src/Tests/Output-f/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,368 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous3 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous5 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous7 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous8 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous10 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
Index: src/Tests/Output-f/LabelledExit.txt
===================================================================
--- src/Tests/Output-f/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
Index: src/Tests/Output-f/Members.txt
===================================================================
--- src/Tests/Output-f/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,64 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+char 
+
+There are 1 alternatives
+Alternative 1 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+pointer to char 
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+lvalue signed int 
+
Index: src/Tests/Output-f/Misc.txt
===================================================================
--- src/Tests/Output-f/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
Index: src/Tests/Output-f/MiscError.txt
===================================================================
--- src/Tests/Output-f/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,83 @@
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Comma Expression:
+    Name: a
+
+    Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Ambiguous expression in sizeof operand: Name: b
+
Index: src/Tests/Output-f/NamedParmArg.txt
===================================================================
--- src/Tests/Output-f/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,35 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f2
+...to: 
+with designator:  Tuple:
+          Name: j
+
+          Name: i
+
+
Index: src/Tests/Output-f/NumericConstants.txt
===================================================================
--- src/Tests/Output-f/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,158 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+unsigned int 
+
+There are 1 alternatives
+Alternative 1 ==============
+long long signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+float 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+double 
+
+There are 1 alternatives
+Alternative 1 ==============
+long double 
+
+Error: No reasonable alternatives for expression Name: 1
+
Index: src/Tests/Output-f/OccursError.txt
===================================================================
--- src/Tests/Output-f/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+    Name: g
+
Index: src/Tests/Output-f/Operators.txt
===================================================================
--- src/Tests/Output-f/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,23 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 2 alternatives
+Alternative 1 ==============
+signed int 
+
+Alternative 2 ==============
+char 
+
Index: src/Tests/Output-f/Quad.txt
===================================================================
--- src/Tests/Output-f/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
Index: src/Tests/Output-f/Rank2.txt
===================================================================
--- src/Tests/Output-f/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,17 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: h
+...to: 
+    Applying untyped: 
+        Name: id
+    ...to: 
+        Applying untyped: 
+            Name: id
+        ...to: 
+            Applying untyped: 
+                Name: id
+            ...to: 
+                Name: 0
+
Index: src/Tests/Output-f/Scope.txt
===================================================================
--- src/Tests/Output-f/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,70 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of type x (not function type) 
+
+There are 1 alternatives
+Alternative 1 ==============
+instance of type t (not function type) 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      b: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: u
+    Name: y
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: z
+    Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+    Name: y
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: q
+    Name: y
+
+Error: No reasonable alternatives for expression Name: some_func
+
Index: src/Tests/Output-f/ScopeErrors.txt
===================================================================
--- src/Tests/Output-f/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Output-f/ShortCircuit.txt
===================================================================
--- src/Tests/Output-f/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+
Index: src/Tests/Output-f/Statement.txt
===================================================================
--- src/Tests/Output-f/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+lvalue pointer to signed int 
+
Index: src/Tests/Output-f/StructMember.txt
===================================================================
--- src/Tests/Output-f/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,560 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m1: signed int with bitfield width constant expression 3 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m1: signed int with bitfield width constant expression 3 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m2: signed int with bitfield width constant expression 4 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m2: signed int with bitfield width constant expression 4 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m4: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m4: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m5: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m5: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m6: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m6: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m7: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m7: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m8: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m8: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m9: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m9: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m10: pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m11: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m12: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m12: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m13: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m13: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m14: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Name: __builtin_memcpy
+
Index: src/Tests/Output-f/Subrange.txt
===================================================================
--- src/Tests/Output-f/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: *?
+
Index: src/Tests/Output-f/Switch.txt
===================================================================
--- src/Tests/Output-f/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,20 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-f/Tuple.txt
===================================================================
--- src/Tests/Output-f/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,258 @@
+There are 1 alternatives
+Alternative 1 ==============
+instance of struct inner 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+signed int 
+
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f4: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f4: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: x: short signed int 
+    Variable Expression: w: signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: r
+    Tuple:
+              Name: x
+
+              Name: y
+
+              Name: z
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: a: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+    Tuple:
+      constant expression 4.6 double 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: c: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+                  Tuple:
+                          Name: c
+
+
+    Tuple:
+      constant expression 2 signed int 
+              Tuple:
+                      Name: a
+
+                      Name: b
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: c
+
+                  Name: d
+
+    Name: t1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Address of:
+  Tuple:
+    constant expression 3 signed int 
+    constant expression 4 signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: s
+    Tuple:
+      constant expression 11 signed int 
+      constant expression 12 signed int 
+      constant expression 13 signed int 
+      constant expression 3.14159 double 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: sp
+    Name: sp
+
+Error: No reasonable alternatives for expression Name: 0
+
Index: src/Tests/Output-f/TypeGenerator.txt
===================================================================
--- src/Tests/Output-f/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,133 @@
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      next: pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S2 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      next: pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: my_list
+
+to:
+  instance of struct node 
+    with parameters
+      signed int 
+
+
Index: src/Tests/Output-f/Typedef.txt
===================================================================
--- src/Tests/Output-f/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,20 @@
+There are 1 alternatives
+Alternative 1 ==============
+signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
Index: src/Tests/Output-f/gcc900407-1.txt
===================================================================
--- src/Tests/Output-f/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?++
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-f/gcc920409-1.txt
===================================================================
--- src/Tests/Output-f/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Output-f/gcc920409-2.txt
===================================================================
--- src/Tests/Output-f/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-f/gcc920410-2.txt
===================================================================
--- src/Tests/Output-f/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-f/gcc920501-11.txt
===================================================================
--- src/Tests/Output-f/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Output-f/gcc920501-19.txt
===================================================================
--- src/Tests/Output-f/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-f/report
===================================================================
--- src/Tests/Output-f/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-f/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Output-r/Abstype.txt
===================================================================
--- src/Tests/Output-r/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1505 @@
+nameExpr is x
+decl is x: function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: x: function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: x: function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type T (not function type) 
+actuals are:
+                  Variable Expression: t: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: x: function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: t: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: x: function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T (not function type) 
+    _src: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type U (not function type) 
+    _src: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+    to:
+      pointer to pointer to signed int 
+    Cast of:
+      Variable Expression: _src: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T (not function type) 
+          _src: instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type U (not function type) 
+          _src: instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type U (not function type) 
+(types:
+    lvalue pointer to instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Variable Expression: u: instance of type U (not function type) 
+
+to:
+  instance of type U (not function type) 
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T (not function type) 
+    _src: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type U (not function type) 
+    _src: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+    to:
+      pointer to pointer to signed int 
+    Cast of:
+      Variable Expression: _src: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T (not function type) 
+          _src: instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type U (not function type) 
+          _src: instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+nameExpr is u_instance
+decl is u_instance: instance of type U (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: u: instance of type U (not function type) 
+
+  to:
+    instance of type U (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: u_instance: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u_instance: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: u_instance: instance of type U (not function type) 
+(types:
+    pointer to instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: u_instance: instance of type U (not function type) 
+(types:
+    pointer to instance of type U (not function type) 
+)
+Environment: 
+
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type U (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type U (not function type) 
+              _src: instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type U (not function type) 
+                  _src: instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type U (not function type) 
+actual type is pointer to instance of type U (not function type) 
+formal type is instance of type U (not function type) 
+actual type is lvalue instance of type U (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T (not function type) 
+              _src: instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T (not function type) 
+                  _src: instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type U (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to instance of type U (not function type) 
+actual expression:
+        Address of:
+          Variable Expression: u_instance: instance of type U (not function type) 
+--- results are
+        pointer to instance of type U (not function type) 
+
+converting pointer to instance of type U (not function type) 
+ to pointer to instance of type U (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: u: instance of type U (not function type) 
+--- results are
+        lvalue instance of type U (not function type) 
+
+converting lvalue instance of type U (not function type) 
+ to instance of type U (not function type) 
+cost is( 0, 0, 2 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of type U (not function type) 
+        _src: instance of type U (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: u_instance: instance of type U (not function type) 
+
+                  Cast of:
+            Variable Expression: u: instance of type U (not function type) 
+
+          to:
+            instance of type U (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 2 )
+alternatives before prune:
+Cost ( 0, 0, 2 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        _dst: pointer to instance of type U (not function type) 
+        _src: instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: u_instance: instance of type U (not function type) 
+
+      Cast of:
+      Variable Expression: u: instance of type U (not function type) 
+
+    to:
+      instance of type U (not function type) 
+
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          _dst: pointer to instance of type U (not function type) 
+          _src: instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: u_instance: instance of type U (not function type) 
+
+          Cast of:
+        Variable Expression: u: instance of type U (not function type) 
+
+      to:
+        instance of type U (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?++
+decl is ?++: function
+  with parameters
+    pointer to signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?++: function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?++: function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is *?
+decl is *?: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    pointer to instance of type T (not function type) 
+  returning 
+    lvalue instance of type T (not function type) 
+
+newExpr is Variable Expression: *?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: *?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type _0_T (not function type) 
+        returning 
+          lvalue instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: *?: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              pointer to instance of type T (not function type) 
+            returning 
+              lvalue instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  pointer to instance of type _0_T (not function type) 
+                returning 
+                  lvalue instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type _0_T (not function type) 
+actual type is lvalue instance of type U (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to forall
+    _1_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _1_DT (not function type) 
+    pointer to instance of type _1_DT (not function type) 
+  returning 
+    pointer to instance of type _1_DT (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T (not function type) 
+    _src: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type T (not function type) 
+    _src: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type U (not function type) 
+    _src: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+    to:
+      pointer to pointer to signed int 
+    Cast of:
+      Variable Expression: _src: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type U (not function type) 
+    _src: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 15 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 25 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: u: instance of type U (not function type) 
+--- results are
+        lvalue instance of type U (not function type) 
+
+converting lvalue instance of type U (not function type) 
+ to pointer to instance of type _0_T (not function type) 
+cost is( 0, 0, 1 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type _0_T (not function type) 
+actuals are:
+                  Cast of:
+            Variable Expression: u: instance of type U (not function type) 
+
+          to:
+            pointer to signed int 
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+cost of conversion is:( 0, 4, 1 )
+alternatives before prune:
+Cost ( 0, 4, 1 ): Application of
+  Variable Expression: *?: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        pointer to instance of type T (not function type) 
+      returning 
+        lvalue instance of type T (not function type) 
+
+to arguments
+      Cast of:
+      Variable Expression: u: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    lvalue instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 4, 1 ): Address of:
+  Application of
+    Variable Expression: *?: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type T (not function type) 
+        returning 
+          lvalue instance of type T (not function type) 
+
+  to arguments
+          Cast of:
+        Variable Expression: u: instance of type U (not function type) 
+
+      to:
+        pointer to signed int 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+(types:
+    pointer to signed int 
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 1 ): Address of:
+  Application of
+    Variable Expression: *?: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type T (not function type) 
+        returning 
+          lvalue instance of type T (not function type) 
+
+  to arguments
+          Cast of:
+        Variable Expression: u: instance of type U (not function type) 
+
+      to:
+        pointer to signed int 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+(types:
+    pointer to signed int 
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?++: function
+            with parameters
+              pointer to signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Application of
+            Variable Expression: *?: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                returning 
+                  lvalue instance of type T (not function type) 
+
+          to arguments
+                          Cast of:
+                Variable Expression: u: instance of type U (not function type) 
+
+              to:
+                pointer to signed int 
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+actuals are:
+                  Address of:
+            Application of
+              Variable Expression: *?: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                  returning 
+                    lvalue instance of type T (not function type) 
+
+            to arguments
+                              Cast of:
+                  Variable Expression: u: instance of type U (not function type) 
+
+                to:
+                  pointer to signed int 
+
+            with inferred parameters:
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?++: function
+      with parameters
+        pointer to signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Application of
+        Variable Expression: *?: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              pointer to instance of type T (not function type) 
+            returning 
+              lvalue instance of type T (not function type) 
+
+      to arguments
+                  Cast of:
+            Variable Expression: u: instance of type U (not function type) 
+
+          to:
+            pointer to signed int 
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+
+(types:
+    signed int 
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?++: function
+        with parameters
+          pointer to signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Application of
+          Variable Expression: *?: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                pointer to instance of type T (not function type) 
+              returning 
+                lvalue instance of type T (not function type) 
+
+        to arguments
+                      Cast of:
+              Variable Expression: u: instance of type U (not function type) 
+
+            to:
+              pointer to signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Variable Expression: u: instance of type U (not function type) 
+
+to:
+  instance of type U (not function type) 
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: u: instance of type U (not function type) 
+
+to:
+  pointer to signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+to:
+  pointer to pointer to signed int 
+
Index: src/Tests/Output-r/Array.txt
===================================================================
--- src/Tests/Output-r/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,98 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 1, 0, 0 ): Cast of:
+constant expression 3.0 double 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __a1__A0i[];
+int __a2__A0i[*];
+double __a4__A0d[((long unsigned int )3.0)];
+int __m1__A0A0i[][3];
+int __m2__A0A0i[*][*];
+int __m4__A0A0i[((long unsigned int )3)][3];
+int __fred__Fi__(){
+    int __a1__A0i[];
+    int __a2__A0i[*];
+    int __a4__A0i[((long unsigned int )3)];
+    int __T__A0i[((long unsigned int )3)];
+}
+int __mary__Fi_PiCPiPiCPi_(int __T__Pi[3], int __p1__CPi[const 3], int __p2__Pi[static 3], int __p3__CPi[static const 3]){
+}
+int (*__tom__FPA0i__())[3]{
+}
+int (*__jane__FPFi_PiCPiPiCPi___())(int __T__Pi[3], int __p1__CPi[const 3], int __p2__Pi[static 3], int __p3__CPi[static const 3]){
+}
Index: src/Tests/Output-r/AsmName.txt
===================================================================
--- src/Tests/Output-r/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+extern int __x__i;
+int __fred__Fi_i_(int __x__i){
+    static int __y__i;
+    static int *__z__Pi;
+}
Index: src/Tests/Output-r/Attributes.txt
===================================================================
--- src/Tests/Output-r/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Output-r/Cast.txt
===================================================================
--- src/Tests/Output-r/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2235 @@
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            signed int 
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            signed int 
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 4 ): Cast of:
+  Variable Expression: f: char 
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Cast of:
+    Variable Expression: f: char 
+
+  to:
+    signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            signed int 
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Variable Expression: f: short signed int 
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Cast of:
+    Variable Expression: f: short signed int 
+
+  to:
+    signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: short signed int 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: f: function
+        accepting unspecified arguments
+      returning 
+        nothing 
+
+
+to:
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Cast of:
+    Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+  to:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: short signed int 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: short signed int 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: char 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: char 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of f: short signed int 
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: short signed int 
+
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Variable Expression: f: function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Cast of:
+            Tuple:
+                              Name: f
+
+                              Name: f
+
+                              Name: f
+
+
+          to:
+            long signed int 
+            long double 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  nothing 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: char 
+newExpr is Variable Expression: f: char 
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: short signed int 
+newExpr is Variable Expression: f: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue short signed int 
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue double 
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue char 
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue short signed int 
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue double 
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue char 
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue short signed int 
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue double 
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+(types:
+    lvalue char 
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue short signed int 
+    lvalue short signed int 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue double 
+    lvalue short signed int 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue char 
+    lvalue short signed int 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue short signed int 
+    lvalue double 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue double 
+    lvalue double 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue char 
+    lvalue double 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue short signed int 
+    lvalue char 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue double 
+    lvalue char 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+(types:
+    lvalue char 
+    lvalue char 
+    lvalue short signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue short signed int 
+    lvalue short signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue double 
+    lvalue short signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue char 
+    lvalue short signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue short signed int 
+    lvalue double 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue double 
+    lvalue double 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue char 
+    lvalue double 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue short signed int 
+    lvalue char 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue double 
+    lvalue char 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+(types:
+    lvalue char 
+    lvalue char 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue short signed int 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue char 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue short signed int 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue short signed int 
+    lvalue short signed int 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue double 
+    lvalue short signed int 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue char 
+    lvalue short signed int 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue double 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue short signed int 
+    lvalue double 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue double 
+    lvalue double 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue char 
+    lvalue double 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+    lvalue char 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: short signed int 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue short signed int 
+    lvalue char 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: double 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue double 
+    lvalue char 
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+      Variable Expression: f: char 
+
+(types:
+    lvalue char 
+    lvalue char 
+    lvalue char 
+)
+Environment: 
+
+there are 64 alternatives before elimination
+there are 64 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 4 ): Cast of:
+  Tuple:
+          Variable Expression: f: short signed int 
+
+          Variable Expression: f: double 
+
+          Variable Expression: f: function
+            accepting unspecified arguments
+          returning 
+            nothing 
+
+
+
+to:
+  long signed int 
+  long double 
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        nothing 
+
+(types:
+    long signed int 
+    long double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 3 ): Cast of:
+  Cast of:
+    Tuple:
+              Variable Expression: f: short signed int 
+
+              Variable Expression: f: double 
+
+              Variable Expression: f: function
+              accepting unspecified arguments
+            returning 
+              nothing 
+
+
+
+  to:
+    long signed int 
+    long double 
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+char __f__c;
+void __f__F__(){
+    char __f__c;
+    double __f__d;
+    ((int )__f__c);
+    short __f__s;
+    ((int )__f__s);
+    ((void (*)())__f__F__);
+    ((long int ));
+}
Index: src/Tests/Output-r/CastError.txt
===================================================================
--- src/Tests/Output-r/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,197 @@
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: signed int 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            char 
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: signed int 
+newExpr is Variable Expression: f: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 1, 0, 0 ): Cast of:
+  Variable Expression: f: signed int 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Cast of:
+  Variable Expression: f: double 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+marking ambiguous
+there are 1 alternatives before elimination
+nameExpr is f
+decl is f: function
+    accepting unspecified arguments
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of f: signed int 
+      Declaration of f: double 
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            char 
+
+              Expression Statement:
+          Cast of:
+            Name: f
+
+          to:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+
+newExpr is Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+
+decl is f: double 
+newExpr is Variable Expression: f: double 
+
+decl is f: signed int 
+newExpr is Variable Expression: f: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+Error: Can't choose between alternatives for expression Cast of:
+  Name: f
+
+to:
+  char 
+Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: signed int 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+        Cost ( 1, 0, 0 ):         Cast of:
+          Variable Expression: f: double 
+
+        to:
+          char 
+(types:
+            char 
+)
+        Environment: 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: f
+
+to:
+  pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+
Index: src/Tests/Output-r/CharStringConstants.txt
===================================================================
--- src/Tests/Output-r/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1242 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression ' ' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression ' ' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'a' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'a' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '"' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '"' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '_' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '_' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\a' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\a' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\b' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\b' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\e' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\e' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\f' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\f' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\n' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\n' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\r' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\r' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\t' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\t' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\v' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\v' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\'' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\'' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\"' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\"' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\?' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\?' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\\' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\\' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\0' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\0' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\377' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\377' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xf' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xf' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'aa' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'aa' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'a\na' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'a\na' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'a\0a' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'a\0a' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xfff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xfff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '_\377_' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '_\377_' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '_\xff_' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '_\xff_' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xffff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xffff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 'a\xff34w' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 'a\xff34w' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '\xffff' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '\xffff' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression " " array of char with dimension of constant expression 4 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression " " array of char with dimension of constant expression 4 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "a" array of char with dimension of constant expression 4 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "a" array of char with dimension of constant expression 4 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "'" array of char with dimension of constant expression 4 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "'" array of char with dimension of constant expression 4 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression '_' char (types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression '_' char 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\a" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\a" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\b" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\b" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\e" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\e" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\f" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\f" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\n" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\n" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\r" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\r" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\t" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\t" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\v" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\v" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\'" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\'" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\"" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\"" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\?" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\?" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\\" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\\" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\0" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\0" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\377" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\377" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xf" array of char with dimension of constant expression 6 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xf" array of char with dimension of constant expression 6 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xff" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "" array of char with dimension of constant expression 3 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "" array of char with dimension of constant expression 3 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "aa" array of char with dimension of constant expression 5 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "aa" array of char with dimension of constant expression 5 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "a\na" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "a\na" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xff" array of char with dimension of constant expression 7 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int main(){
+    ' ';
+    'a';
+    '"';
+    '_';
+    '\a';
+    '\b';
+    '\e';
+    '\f';
+    '\n';
+    '\r';
+    '\t';
+    '\v';
+    '\'';
+    '\"';
+    '\?';
+    '\\';
+    '\0';
+    '\377';
+    '\xf';
+    '\xff';
+    '';
+    'aa';
+    'a\na';
+    'a\0a';
+    '\xfff';
+    '_\377_';
+    '_\xff_';
+    '\xffff';
+    'a\xff34w';
+    '\xff';
+    '\xffff';
+    " ";
+    "a";
+    "'";
+    '_';
+    "\a";
+    "\b";
+    "\e";
+    "\f";
+    "\n";
+    "\r";
+    "\t";
+    "\v";
+    "\'";
+    "\"";
+    "\?";
+    "\\";
+    "\0";
+    "\377";
+    "\xf";
+    "\xff";
+    "";
+    "aa";
+    "a\na";
+    "a\0a";
+    "_\377_";
+    "_\xff_";
+    "\xff";
+    "\xffff";
+    "\xfff";
+    "a\xff34w";
+    "\xffff";
+}
Index: src/Tests/Output-r/CommentMisc.txt
===================================================================
--- src/Tests/Output-r/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,27 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __i__i;
+int __i__i;
+int __i__i;
+int __i__i;
+int main(){
+    int __x__A0i[((long unsigned int )10)];
+}
Index: src/Tests/Output-r/Constant0-1.txt
===================================================================
--- src/Tests/Output-r/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3010 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+(types:
+    instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+(types:
+    instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+(types:
+    instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+(types:
+    instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+(types:
+    instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous6 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+(types:
+    instance of struct __anonymous6 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
Index: src/Tests/Output-r/Context.txt
===================================================================
--- src/Tests/Output-r/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+;
+void __f__A1_0_0____operator_assign__PFt0_Pt0t0___q__PFt0_t0__F__(void (*_adapterF2tz_2tz_)(void (*)(), void *, void *), void (*_adapterF2tz_P2tz2tz_)(void (*)(), void *, void *, void *), long unsigned int z, void (*___operator_assign__PF2tz_P2tz2tz_)(), void (*__q__PF2tz_2tz_)(), ...){
+    ;
+    extern unsigned long x;
+    void *___operator_assign__F2tx_P2tx2tx_(void *___dst__P2tx, void *___src__2tx);
+    extern unsigned long y;
+    void *___operator_assign__F2ty_P2ty2ty_(void *___dst__P2ty, void *___src__2ty);
+}
Index: src/Tests/Output-r/DeclarationErrors.txt
===================================================================
--- src/Tests/Output-r/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-r/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Output-r/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-r/Enum.txt
===================================================================
--- src/Tests/Output-r/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,48 @@
+nameExpr is Mango
+decl is Mango: const instance of enum Fruits 
+newExpr is Variable Expression: Mango: const instance of enum Fruits 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: Mango: const instance of enum Fruits 
+(types:
+    const lvalue instance of enum Fruits 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: Mango: const instance of enum Fruits 
+
+to:
+  instance of enum Fruits 
+(types:
+    instance of enum Fruits 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+enum Colors
+{
+    __Red__C7eColors,
+    __Yellow__C7eColors,
+    __Pink__C7eColors,
+    __Blue__C7eColors,
+    __Purple__C7eColors,
+    __Orange__C7eColors,
+    __Green__C7eColors,
+}
+;
+void __f__F__(void){
+    enum Fruits
+{
+        __Apple__C7eFruits,
+        __Banana__C7eFruits,
+        __Pear__C7eFruits,
+        __Mango__C7eFruits,
+}
+;
+    enum Fruits __fruit__7eFruits = ((enum Fruits )__Mango__C7eFruits);
+}
Index: src/Tests/Output-r/Exception.txt
===================================================================
--- src/Tests/Output-r/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 3 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is ?/?
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
Index: src/Tests/Output-r/Expression.txt
===================================================================
--- src/Tests/Output-r/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,445 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s 
+    _src: instance of struct s 
+  returning 
+    instance of struct s 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct s 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s 
+      _src: instance of struct s 
+    returning 
+      instance of struct s 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s 
+      _src: instance of struct s 
+    returning 
+      instance of struct s 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s 
+          _src: instance of struct s 
+        returning 
+          instance of struct s 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct s 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s 
+              _src: instance of struct s 
+            returning 
+              instance of struct s 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s 
+                  _src: instance of struct s 
+                returning 
+                  instance of struct s 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct s 
+(types:
+    lvalue instance of struct s 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct s 
+
+to:
+  instance of struct s 
+(types:
+    instance of struct s 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is !?
+nameExpr is ~?
+nameExpr is +?
+nameExpr is -?
+nameExpr is *?
+nameExpr is ++?
+nameExpr is --?
+nameExpr is ?++
+nameExpr is ?--
+nameExpr is ?+?
+nameExpr is ?-?
+nameExpr is ?*?
+nameExpr is ?/?
+nameExpr is ?%?
+nameExpr is ?^?
+nameExpr is ?&?
+nameExpr is ?|?
+nameExpr is ?<?
+nameExpr is ?>?
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s 
+    _src: instance of struct s 
+  returning 
+    instance of struct s 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct s 
+
+to:
+  instance of struct s 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s 
+      _src: instance of struct s 
+    returning 
+      instance of struct s 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s 
+      _src: instance of struct s 
+    returning 
+      instance of struct s 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s 
+          _src: instance of struct s 
+        returning 
+          instance of struct s 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: i: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: i: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s 
+              _src: instance of struct s 
+            returning 
+              instance of struct s 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s 
+                  _src: instance of struct s 
+                returning 
+                  instance of struct s 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s 
+actual type is pointer to signed int 
+nameExpr is ?==?
+nameExpr is ?!=?
+nameExpr is ?<<?
+nameExpr is ?>>?
+nameExpr is ?<=?
+nameExpr is ?>=?
+nameExpr is ?!=?
+nameExpr is ?!=?
+nameExpr is *?
+nameExpr is ?+=?
+nameExpr is ?-=?
+nameExpr is ?*=?
+nameExpr is ?/=?
+nameExpr is ?%=?
+nameExpr is ?&=?
+nameExpr is ?|=?
+nameExpr is ?^=?
+nameExpr is ?<<=?
+nameExpr is ?>>=?
+nameExpr is ?!=?
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s 
+
+Error: No reasonable alternatives for expression Name: !?
+
+Error: No reasonable alternatives for expression Name: ~?
+
+Error: No reasonable alternatives for expression Name: +?
+
+Error: No reasonable alternatives for expression Name: -?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ++?
+
+Error: No reasonable alternatives for expression Name: --?
+
+Error: No reasonable alternatives for expression Name: ?++
+
+Error: No reasonable alternatives for expression Name: ?--
+
+Error: No reasonable alternatives for expression Name: ?+?
+
+Error: No reasonable alternatives for expression Name: ?-?
+
+Error: No reasonable alternatives for expression Name: ?*?
+
+Error: No reasonable alternatives for expression Name: ?/?
+
+Error: No reasonable alternatives for expression Name: ?%?
+
+Error: No reasonable alternatives for expression Name: ?^?
+
+Error: No reasonable alternatives for expression Name: ?&?
+
+Error: No reasonable alternatives for expression Name: ?|?
+
+Error: No reasonable alternatives for expression Name: ?<?
+
+Error: No reasonable alternatives for expression Name: ?>?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: i
+
+Error: No reasonable alternatives for expression Name: ?==?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?<<?
+
+Error: No reasonable alternatives for expression Name: ?>>?
+
+Error: No reasonable alternatives for expression Name: ?<=?
+
+Error: No reasonable alternatives for expression Name: ?>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Name: ?-=?
+
+Error: No reasonable alternatives for expression Name: ?*=?
+
+Error: No reasonable alternatives for expression Name: ?/=?
+
+Error: No reasonable alternatives for expression Name: ?%=?
+
+Error: No reasonable alternatives for expression Name: ?&=?
+
+Error: No reasonable alternatives for expression Name: ?|=?
+
+Error: No reasonable alternatives for expression Name: ?^=?
+
+Error: No reasonable alternatives for expression Name: ?<<=?
+
+Error: No reasonable alternatives for expression Name: ?>>=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Output-r/Forall.txt
===================================================================
--- src/Tests/Output-r/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15904 @@
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 5 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Variable Expression: x: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: x: signed int 
+
+bindings are:
+        ( _0_T ) -> signed int 
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: x: signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: x: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> signed int 
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Variable Expression: x: signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is y
+decl is y: pointer to function
+  returning 
+    nothing 
+
+newExpr is Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue pointer to function
+  returning 
+    nothing 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to function
+  returning 
+    nothing 
+
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 25 ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: y: pointer to function
+            returning 
+              nothing 
+
+--- results are
+        lvalue pointer to function
+            returning 
+              nothing 
+
+
+converting lvalue pointer to function
+          returning 
+            nothing 
+
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to function
+                returning 
+                  nothing 
+
+            pointer to function
+                returning 
+                  nothing 
+
+          returning 
+            pointer to function
+                returning 
+                  nothing 
+
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: y: pointer to function
+              returning 
+                nothing 
+
+
+bindings are:
+        ( _0_T ) -> pointer to function
+          returning 
+            nothing 
+
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: y: pointer to function
+        returning 
+          nothing 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: y: pointer to function
+          returning 
+            nothing 
+
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to pointer to function
+            returning 
+              nothing 
+
+        pointer to function
+            returning 
+              nothing 
+
+      returning 
+        pointer to function
+            returning 
+              nothing 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is z
+decl is z: char 
+newExpr is Variable Expression: z: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue char 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 21 ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: z: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: z: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+actual expression:
+        Variable Expression: z: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to char 
+            char 
+          returning 
+            char 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: z: char 
+
+bindings are:
+        ( _0_T ) -> char 
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: z: char 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: z: char 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> char 
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Cast of:
+        Variable Expression: z: char 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is w
+decl is w: float 
+newExpr is Variable Expression: w: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: w: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: w: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue float 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 9 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: w: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: w: float 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: w: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: w: float 
+
+bindings are:
+        ( _0_T ) -> float 
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: w: float 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: w: float 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> float 
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: w: float 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to float 
+        float 
+      returning 
+        float 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> float 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is h
+decl is h: function
+  with parameters
+    p: pointer to function
+        returning 
+          nothing 
+
+  returning 
+    nothing 
+
+newExpr is Variable Expression: h: function
+    with parameters
+      p: pointer to function
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: h: function
+    with parameters
+      p: pointer to function
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          p: pointer to function
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is y
+decl is y: pointer to function
+  returning 
+    nothing 
+
+newExpr is Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue pointer to function
+  returning 
+    nothing 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to function
+  returning 
+    nothing 
+
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+success!
+satisfying assertion 29 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 25 ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: y: pointer to function
+            returning 
+              nothing 
+
+--- results are
+        lvalue pointer to function
+            returning 
+              nothing 
+
+
+converting lvalue pointer to function
+          returning 
+            nothing 
+
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to function
+                returning 
+                  nothing 
+
+            pointer to function
+                returning 
+                  nothing 
+
+          returning 
+            pointer to function
+                returning 
+                  nothing 
+
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: y: pointer to function
+              returning 
+                nothing 
+
+
+bindings are:
+        ( _0_T ) -> pointer to function
+          returning 
+            nothing 
+
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: y: pointer to function
+        returning 
+          nothing 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: y: pointer to function
+        returning 
+          nothing 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        returning 
+          nothing 
+
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: h: function
+            with parameters
+              p: pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  p: pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to function
+  returning 
+    nothing 
+
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: f: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: y: pointer to function
+                returning 
+                  nothing 
+
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+--- results are
+        pointer to function
+            returning 
+              nothing 
+
+
+converting pointer to function
+          returning 
+            nothing 
+
+ to pointer to function
+          returning 
+            nothing 
+
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        p: pointer to function
+            returning 
+              nothing 
+
+actuals are:
+                  Application of
+            Variable Expression: f: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Variable Expression: y: pointer to function
+                  returning 
+                    nothing 
+
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to pointer to function
+                    returning 
+                      nothing 
+
+                pointer to function
+                    returning 
+                      nothing 
+
+              returning 
+                pointer to function
+                    returning 
+                      nothing 
+
+
+
+bindings are:
+        ( _0_T ) -> pointer to function
+          returning 
+            nothing 
+ (no widening)
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: h: function
+      with parameters
+        p: pointer to function
+            returning 
+              nothing 
+
+      returning 
+        nothing 
+
+to arguments
+      Application of
+      Variable Expression: f: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: y: pointer to function
+            returning 
+              nothing 
+
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+
+(types:
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+ (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: h: function
+        with parameters
+          p: pointer to function
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+  to arguments
+          Application of
+        Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+      to arguments
+                  Variable Expression: y: pointer to function
+              returning 
+                nothing 
+
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to pointer to function
+                returning 
+                  nothing 
+
+            pointer to function
+                returning 
+                  nothing 
+
+          returning 
+            pointer to function
+                returning 
+                  nothing 
+
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> pointer to function
+    returning 
+      nothing 
+ (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type U (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+          instance of type _0_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+          _2_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _2_U (not function type) 
+                    instance of type _2_U (not function type) 
+                  returning 
+                    instance of type _2_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+          instance of type _2_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: float 
+newExpr is Variable Expression: y: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                  _2_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _2_U (not function type) 
+                            instance of type _2_U (not function type) 
+                          returning 
+                            instance of type _2_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _1_T (not function type) 
+                  instance of type _2_U (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is lvalue signed int 
+formal type is instance of type _2_U (not function type) 
+actual type is lvalue float 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 56 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with declaration 9 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 52 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 5 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                  instance of type _0_T (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue float 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 45 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 9 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: y: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to instance of type _2_U (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+        instance of type _2_U (not function type) 
+actuals are:
+                  Variable Expression: x: signed int 
+
+                  Variable Expression: y: float 
+
+bindings are:
+        ( _1_T ) -> signed int 
+        ( _2_U ) -> float 
+cost of conversion is:( 0, 8, 0 )
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: y: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+        instance of type _0_T (not function type) 
+actuals are:
+                  Cast of:
+            Variable Expression: x: signed int 
+
+          to:
+            float 
+
+                  Variable Expression: y: float 
+
+bindings are:
+        ( _0_T ) -> float 
+cost of conversion is:( 0, 5, 5 )
+alternatives before prune:
+Cost ( 0, 8, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+        instance of type U (not function type) 
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: x: signed int 
+
+      Variable Expression: y: float 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+)
+Environment:   ( _1_T ) -> signed int 
+  ( _2_U ) -> float 
+
+
+Cost ( 0, 5, 5 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: x: signed int 
+
+    to:
+      float 
+
+      Variable Expression: y: float 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+)
+Environment:   ( _0_T ) -> float 
+
+
+cost ( 0, 5, 5 ) beats ( 0, 8, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          nothing 
+
+  to arguments
+          Cast of:
+        Variable Expression: x: signed int 
+
+      to:
+        float 
+
+          Variable Expression: y: float 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to float 
+        float 
+      returning 
+        float 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> float 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type U (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+          instance of type _0_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+          _2_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _2_U (not function type) 
+                    instance of type _2_U (not function type) 
+                  returning 
+                    instance of type _2_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+          instance of type _2_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is z
+decl is z: pointer to signed int 
+newExpr is Variable Expression: z: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+nameExpr is w
+decl is w: pointer to float 
+newExpr is Variable Expression: w: pointer to float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: w: pointer to float 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: w: pointer to float 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                  _2_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _2_U (not function type) 
+                            instance of type _2_U (not function type) 
+                          returning 
+                            instance of type _2_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _1_T (not function type) 
+                  instance of type _2_U (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is lvalue pointer to signed int 
+formal type is instance of type _2_U (not function type) 
+actual type is lvalue pointer to float 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+success!
+satisfying assertion 56 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with declaration 17 ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+success!
+satisfying assertion 52 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 13 ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                  instance of type _0_T (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to signed int 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to float 
+actual expression:
+        Variable Expression: z: pointer to signed int 
+--- results are
+        lvalue pointer to signed int 
+
+converting lvalue pointer to signed int 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: w: pointer to float 
+--- results are
+        lvalue pointer to float 
+
+converting lvalue pointer to float 
+ to instance of type _2_U (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to signed int 
+            pointer to signed int 
+          returning 
+            pointer to signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to float 
+            pointer to float 
+          returning 
+            pointer to float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+        instance of type _2_U (not function type) 
+actuals are:
+                  Variable Expression: z: pointer to signed int 
+
+                  Variable Expression: w: pointer to float 
+
+bindings are:
+        ( _1_T ) -> pointer to signed int 
+        ( _2_U ) -> pointer to float 
+cost of conversion is:( 0, 8, 0 )
+alternatives before prune:
+Cost ( 0, 8, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+        instance of type U (not function type) 
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: z: pointer to signed int 
+
+      Variable Expression: w: pointer to float 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+  ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+)
+Environment:   ( _1_T ) -> pointer to signed int 
+  ( _2_U ) -> pointer to float 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+          U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type U (not function type) 
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+          instance of type U (not function type) 
+        returning 
+          nothing 
+
+  to arguments
+          Variable Expression: z: pointer to signed int 
+
+          Variable Expression: w: pointer to float 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to pointer to signed int 
+        pointer to signed int 
+      returning 
+        pointer to signed int 
+
+    ?=?: function
+      with parameters
+        pointer to pointer to float 
+        pointer to float 
+      returning 
+        pointer to float 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _1_T ) -> pointer to signed int 
+  ( _2_U ) -> pointer to float 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+    instance of type U (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+          instance of type _0_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+          _2_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _2_U (not function type) 
+                    instance of type _2_U (not function type) 
+                  returning 
+                    instance of type _2_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+          instance of type _2_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is z
+decl is z: pointer to signed int 
+newExpr is Variable Expression: z: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                  _2_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _2_U (not function type) 
+                            instance of type _2_U (not function type) 
+                          returning 
+                            instance of type _2_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _1_T (not function type) 
+                  instance of type _2_U (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is lvalue signed int 
+formal type is instance of type _2_U (not function type) 
+actual type is lvalue pointer to signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 52 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 5 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+success!
+satisfying assertion 56 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with declaration 13 ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_U (not function type) 
+    instance of type _2_U (not function type) 
+  returning 
+    instance of type _2_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                  instance of type _0_T (not function type) 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue pointer to signed int 
+actual expression:
+        Variable Expression: x: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: z: pointer to signed int 
+--- results are
+        lvalue pointer to signed int 
+
+converting lvalue pointer to signed int 
+ to instance of type _2_U (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to pointer to signed int 
+            pointer to signed int 
+          returning 
+            pointer to signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_U (not function type) 
+            instance of type _2_U (not function type) 
+          returning 
+            instance of type _2_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+        instance of type _2_U (not function type) 
+actuals are:
+                  Variable Expression: x: signed int 
+
+                  Variable Expression: z: pointer to signed int 
+
+bindings are:
+        ( _1_T ) -> signed int 
+        ( _2_U ) -> pointer to signed int 
+cost of conversion is:( 0, 8, 0 )
+alternatives before prune:
+Cost ( 0, 8, 0 ): Application of
+  Variable Expression: f: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+        instance of type U (not function type) 
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: x: signed int 
+
+      Variable Expression: z: pointer to signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+)
+Environment:   ( _1_T ) -> signed int 
+  ( _2_U ) -> pointer to signed int 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+          U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type U (not function type) 
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+          instance of type U (not function type) 
+        returning 
+          nothing 
+
+  to arguments
+          Variable Expression: x: signed int 
+
+          Variable Expression: z: pointer to signed int 
+
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+    ?=?: function
+      with parameters
+        pointer to pointer to signed int 
+        pointer to signed int 
+      returning 
+        pointer to signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _1_T ) -> signed int 
+  ( _2_U ) -> pointer to signed int 
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is left
+decl is left: instance of type T (not function type) 
+newExpr is Variable Expression: left: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: left: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: left: instance of type T (not function type) 
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+nameExpr is temp
+decl is temp: instance of type T (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: left: instance of type T (not function type) 
+
+  to:
+    instance of type T (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: temp: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: temp: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: temp: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: temp: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is left
+decl is left: instance of type T (not function type) 
+newExpr is Variable Expression: left: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: left: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: left: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: temp: instance of type T (not function type) 
+--- results are
+        pointer to instance of type T (not function type) 
+
+converting pointer to instance of type T (not function type) 
+ to pointer to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: left: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: temp: instance of type T (not function type) 
+
+                  Variable Expression: left: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: temp: instance of type T (not function type) 
+
+      Variable Expression: left: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: temp: instance of type T (not function type) 
+
+          Variable Expression: left: instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+nameExpr is left
+decl is left: instance of type T (not function type) 
+newExpr is Variable Expression: left: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: left: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: left: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: left: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is right
+decl is right: instance of type T (not function type) 
+newExpr is Variable Expression: right: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: right: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: right: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: left: instance of type T (not function type) 
+--- results are
+        pointer to instance of type T (not function type) 
+
+converting pointer to instance of type T (not function type) 
+ to pointer to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: right: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: left: instance of type T (not function type) 
+
+                  Variable Expression: right: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: left: instance of type T (not function type) 
+
+      Variable Expression: right: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: left: instance of type T (not function type) 
+
+          Variable Expression: right: instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+nameExpr is right
+decl is right: instance of type T (not function type) 
+newExpr is Variable Expression: right: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: right: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: right: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: right: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is temp
+decl is temp: instance of type T (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: left: instance of type T (not function type) 
+
+  to:
+    instance of type T (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: temp: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: temp: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: temp: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: right: instance of type T (not function type) 
+--- results are
+        pointer to instance of type T (not function type) 
+
+converting pointer to instance of type T (not function type) 
+ to pointer to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: temp: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: right: instance of type T (not function type) 
+
+                  Variable Expression: temp: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: right: instance of type T (not function type) 
+
+      Variable Expression: temp: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: right: instance of type T (not function type) 
+
+          Variable Expression: temp: instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type P1 (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue instance of type P1 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type P1 (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type P1 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type P1 (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type P1 (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type P1 (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type P1 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type P1 (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type P1 (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T3 (not function type) 
+              _src: instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T3 (not function type) 
+                  _src: instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T2 (not function type) 
+              _src: instance of type T2 (not function type) 
+            returning 
+              instance of type T2 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T2 (not function type) 
+                  _src: instance of type T2 (not function type) 
+                returning 
+                  instance of type T2 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T1 (not function type) 
+              _src: instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T1 (not function type) 
+                  _src: instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type P1 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type P1 (not function type) 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  j: instance of type P2 (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue instance of type P2 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    j: instance of type P2 (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type P2 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    j: instance of type P2 (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type P2 (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  j: instance of type P2 (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type P2 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  j: instance of type P2 (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type P2 (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T3 (not function type) 
+              _src: instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T3 (not function type) 
+                  _src: instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T2 (not function type) 
+              _src: instance of type T2 (not function type) 
+            returning 
+              instance of type T2 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T2 (not function type) 
+                  _src: instance of type T2 (not function type) 
+                returning 
+                  instance of type T2 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T1 (not function type) 
+              _src: instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T1 (not function type) 
+                  _src: instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type P2 (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type P2 (not function type) 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+(types:
+    lvalue pointer to instance of type T2 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type w3 (not function type) 
+          _src: instance of type w3 (not function type) 
+        returning 
+          instance of type w3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 11 alternatives before elimination
+there are 11 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+(types:
+    lvalue pointer to instance of type w3 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+decl is 0: const instance of type T (not function type) 
+newExpr is Variable Expression: 0: const instance of type T (not function type) 
+
+decl is 0: const instance of type T1 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T1 (not function type) 
+
+decl is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+newExpr is Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+
+decl is 0: const instance of type T3 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T3 (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: 0: const instance of type T (not function type) 
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type w3 (not function type) 
+          _src: instance of type w3 (not function type) 
+        returning 
+          instance of type w3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+nameExpr is total
+decl is total: instance of type T (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: 0: const instance of type T (not function type) 
+
+  to:
+    instance of type T (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: total: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: total: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: total: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: total: instance of type T (not function type) 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: const instance of type T (not function type) 
+newExpr is Variable Expression: 0: const instance of type T (not function type) 
+
+decl is 0: const instance of type T1 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T1 (not function type) 
+
+decl is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+newExpr is Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+
+decl is 0: const instance of type T3 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T3 (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to char 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to signed int 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to float 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type w3 (not function type) 
+              _src: instance of type w3 (not function type) 
+            returning 
+              instance of type w3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type w3 (not function type) 
+                  _src: instance of type w3 (not function type) 
+                returning 
+                  instance of type w3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T3 (not function type) 
+              _src: instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T3 (not function type) 
+                  _src: instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T2 (not function type) 
+              _src: instance of type T2 (not function type) 
+            returning 
+              instance of type T2 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T2 (not function type) 
+                  _src: instance of type T2 (not function type) 
+                returning 
+                  instance of type T2 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T1 (not function type) 
+              _src: instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T1 (not function type) 
+                  _src: instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is const lvalue instance of type T3 (not function type) 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is const lvalue instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is const lvalue instance of type T1 (not function type) 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is const lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: total: instance of type T (not function type) 
+--- results are
+        pointer to instance of type T (not function type) 
+
+converting pointer to instance of type T (not function type) 
+ to pointer to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: const instance of type T (not function type) 
+--- results are
+        const lvalue instance of type T (not function type) 
+
+converting const lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: total: instance of type T (not function type) 
+
+                  Variable Expression: 0: const instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: total: instance of type T (not function type) 
+
+      Variable Expression: 0: const instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: total: instance of type T (not function type) 
+
+          Variable Expression: 0: const instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type w3 (not function type) 
+          _src: instance of type w3 (not function type) 
+        returning 
+          instance of type w3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: i: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: i: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: const instance of type T (not function type) 
+newExpr is Variable Expression: 0: const instance of type T (not function type) 
+
+decl is 0: const instance of type T1 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T1 (not function type) 
+
+decl is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+newExpr is Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+
+decl is 0: const instance of type T3 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T3 (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is const lvalue instance of type T3 (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is const lvalue instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is const lvalue instance of type T1 (not function type) 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is const lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to signed int 
+formal type is pointer to char 
+actual type is pointer to signed int 
+formal type is pointer to char 
+actual type is pointer to signed int 
+formal type is pointer to char 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to signed int 
+              pointer to signed int 
+            returning 
+              pointer to signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to signed int 
+                  pointer to signed int 
+                returning 
+                  pointer to signed int 
+
+)
+        Environment: 
+formal type is pointer to pointer to signed int 
+actual type is pointer to signed int 
+formal type is pointer to pointer to signed int 
+actual type is pointer to signed int 
+formal type is pointer to pointer to signed int 
+actual type is pointer to signed int 
+formal type is pointer to pointer to signed int 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to float 
+              pointer to float 
+            returning 
+              pointer to float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to float 
+                  pointer to float 
+                returning 
+                  pointer to float 
+
+)
+        Environment: 
+formal type is pointer to pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to pointer to float 
+actual type is pointer to signed int 
+formal type is pointer to pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to pointer to function
+                  returning 
+                    nothing 
+
+              pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              pointer to function
+                  returning 
+                    nothing 
+
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to pointer to function
+                      returning 
+                        nothing 
+
+                  pointer to function
+                      returning 
+                        nothing 
+
+                returning 
+                  pointer to function
+                      returning 
+                        nothing 
+
+
+)
+        Environment: 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to signed int 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to signed int 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to signed int 
+formal type is pointer to pointer to function
+  returning 
+    nothing 
+
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type w3 (not function type) 
+              _src: instance of type w3 (not function type) 
+            returning 
+              instance of type w3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type w3 (not function type) 
+                  _src: instance of type w3 (not function type) 
+                returning 
+                  instance of type w3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type w3 (not function type) 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T3 (not function type) 
+              _src: instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T3 (not function type) 
+                  _src: instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T3 (not function type) 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T2 (not function type) 
+              _src: instance of type T2 (not function type) 
+            returning 
+              instance of type T2 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T2 (not function type) 
+                  _src: instance of type T2 (not function type) 
+                returning 
+                  instance of type T2 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T2 (not function type) 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type T1 (not function type) 
+              _src: instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type T1 (not function type) 
+                  _src: instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T1 (not function type) 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type T (not function type) 
+actual type is pointer to signed int 
+nameExpr is total
+decl is total: instance of type T (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: 0: const instance of type T (not function type) 
+
+  to:
+    instance of type T (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: total: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: total: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: total: instance of type T (not function type) 
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?+?
+decl is ?+?: function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      instance of type T1 (not function type) 
+      instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?+?: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+    returning 
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+
+
+decl is ?+?: function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      instance of type T3 (not function type) 
+      instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?+?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?+?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      instance of type T1 (not function type) 
+      instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+    returning 
+      instance of type T2 (not function type) 
+        with parameters
+          instance of type P1 (not function type) 
+          instance of type P2 (not function type) 
+
+
+(types:
+    pointer to function
+        with parameters
+          instance of type T2 (not function type) 
+            with parameters
+              instance of type P1 (not function type) 
+              instance of type P2 (not function type) 
+
+          instance of type T2 (not function type) 
+            with parameters
+              instance of type P1 (not function type) 
+              instance of type P2 (not function type) 
+
+        returning 
+          instance of type T2 (not function type) 
+            with parameters
+              instance of type P1 (not function type) 
+              instance of type P2 (not function type) 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      instance of type T3 (not function type) 
+      instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type T3 (not function type) 
+          instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              instance of type T3 (not function type) 
+              instance of type T3 (not function type) 
+            returning 
+              instance of type T3 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  instance of type T3 (not function type) 
+                  instance of type T3 (not function type) 
+                returning 
+                  instance of type T3 (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T3 (not function type) 
+actual type is lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              instance of type T2 (not function type) 
+                with parameters
+                  instance of type P1 (not function type) 
+                  instance of type P2 (not function type) 
+
+              instance of type T2 (not function type) 
+                with parameters
+                  instance of type P1 (not function type) 
+                  instance of type P2 (not function type) 
+
+            returning 
+              instance of type T2 (not function type) 
+                with parameters
+                  instance of type P1 (not function type) 
+                  instance of type P2 (not function type) 
+
+
+(types:
+            pointer to function
+                with parameters
+                  instance of type T2 (not function type) 
+                    with parameters
+                      instance of type P1 (not function type) 
+                      instance of type P2 (not function type) 
+
+                  instance of type T2 (not function type) 
+                    with parameters
+                      instance of type P1 (not function type) 
+                      instance of type P2 (not function type) 
+
+                returning 
+                  instance of type T2 (not function type) 
+                    with parameters
+                      instance of type P1 (not function type) 
+                      instance of type P2 (not function type) 
+
+
+)
+        Environment: 
+formal type is instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+actual type is lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              instance of type T1 (not function type) 
+              instance of type T1 (not function type) 
+            returning 
+              instance of type T1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  instance of type T1 (not function type) 
+                  instance of type T1 (not function type) 
+                returning 
+                  instance of type T1 (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T1 (not function type) 
+actual type is lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Variable Expression: t: instance of type T (not function type) 
+
+                  Variable Expression: t: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?+?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: t: instance of type T (not function type) 
+
+      Variable Expression: t: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?+?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      signed int 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?<?
+decl is ?<?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?<?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?<?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      signed int 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is t1
+decl is t1: instance of type T (not function type) 
+newExpr is Variable Expression: t1: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t1: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is t2
+decl is t2: instance of type T (not function type) 
+newExpr is Variable Expression: t2: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t2: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t2: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?<?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t1: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: t2: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Variable Expression: t1: instance of type T (not function type) 
+
+                  Variable Expression: t2: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?<?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: t1: instance of type T (not function type) 
+
+      Variable Expression: t2: instance of type T (not function type) 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?<?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: t1: instance of type T (not function type) 
+
+      Variable Expression: t2: instance of type T (not function type) 
+
+(types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: const instance of type T (not function type) 
+newExpr is Variable Expression: 0: const instance of type T (not function type) 
+
+decl is 0: const instance of type T1 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T1 (not function type) 
+
+decl is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+newExpr is Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+
+decl is 0: const instance of type T3 (not function type) 
+newExpr is Variable Expression: 0: const instance of type T3 (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T3 (not function type) 
+(types:
+    const lvalue instance of type T3 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T2 (not function type) 
+  with parameters
+    instance of type P1 (not function type) 
+    instance of type P2 (not function type) 
+
+(types:
+    const lvalue instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T1 (not function type) 
+(types:
+    const lvalue instance of type T1 (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: const instance of type T (not function type) 
+(types:
+    const lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is signed int 
+formal type is instance of type T (not function type) 
+actual type is signed int 
+formal type is instance of type T (not function type) 
+actual type is signed int 
+formal type is instance of type T (not function type) 
+actual type is signed int 
+nameExpr is 1
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 2 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is swap
+decl is swap: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    left: instance of type T (not function type) 
+    right: instance of type T (not function type) 
+  returning 
+    nothing 
+  with body 
+    CompoundStmt
+      Declaration of temp: instance of type T (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Variable Expression: left: instance of type T (not function type) 
+
+          to:
+            instance of type T (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: temp: instance of type T (not function type) 
+
+                          Variable Expression: left: instance of type T (not function type) 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: left: instance of type T (not function type) 
+
+                          Variable Expression: right: instance of type T (not function type) 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: right: instance of type T (not function type) 
+
+                          Variable Expression: temp: instance of type T (not function type) 
+
+          with environment:
+            Types:
+            Non-types:
+
+
+newExpr is Variable Expression: swap: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: swap: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          left: instance of type _0_T (not function type) 
+          right: instance of type _0_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+nameExpr is twice
+decl is twice: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        0: const instance of type T (not function type) 
+        ?+?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?++: pointer to function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?+=?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?+?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: twice: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: twice: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              0: const instance of type _0_T (not function type) 
+              ?+?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?++: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?+=?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          t: instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T1 (not function type) 
+          _src: instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T2 (not function type) 
+          _src: instance of type T2 (not function type) 
+        returning 
+          instance of type T2 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type T3 (not function type) 
+          _src: instance of type T3 (not function type) 
+        returning 
+          instance of type T3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type w3 (not function type) 
+          _src: instance of type w3 (not function type) 
+        returning 
+          instance of type w3 (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to function
+              returning 
+                nothing 
+
+          pointer to function
+              returning 
+                nothing 
+
+        returning 
+          pointer to function
+              returning 
+                nothing 
+
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to float 
+          pointer to float 
+        returning 
+          pointer to float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to pointer to signed int 
+          pointer to signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+nameExpr is f
+decl is f: float 
+newExpr is Variable Expression: f: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: f: float 
+(types:
+    pointer to float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: f: float 
+(types:
+    pointer to float 
+)
+Environment: 
+
+nameExpr is min
+decl is min: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        0: const instance of type T (not function type) 
+        ?!=?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+        ?<?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              signed int 
+
+
+  function
+  with parameters
+    t1: instance of type T (not function type) 
+    t2: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Conditional expression on: 
+  Cast of:
+    Applying untyped: 
+        Name: ?!=?
+    ...to: 
+        Applying untyped: 
+            Name: ?<?
+        ...to: 
+            Name: t1
+            Name: t2
+        Name: 0
+
+  to:
+    signed int 
+First alternative:
+  Name: t1
+Second alternative:
+  Name: t2
+
+
+
+
+newExpr is Variable Expression: min: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: min: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              0: const instance of type _0_T (not function type) 
+              ?!=?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    signed int 
+
+              ?<?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    signed int 
+
+
+        function
+        with parameters
+          t1: instance of type _0_T (not function type) 
+          t2: instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4.0 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 4.0 double (types:
+    double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3.0 double (types:
+    double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: min: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  0: const instance of type T (not function type) 
+                  ?!=?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        signed int 
+
+                  ?<?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        signed int 
+
+
+            function
+            with parameters
+              t1: instance of type T (not function type) 
+              t2: instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      0: const instance of type _0_T (not function type) 
+                      ?!=?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            signed int 
+
+                      ?<?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            signed int 
+
+
+                function
+                with parameters
+                  t1: instance of type _0_T (not function type) 
+                  t2: instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is double 
+formal type is instance of type _0_T (not function type) 
+actual type is double 
+need assertions:
+?!=?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            signed int 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)0: const instance of type _0_T (not function type) (used)?<?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            signed int 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?!=?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?!=?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    signed int 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    signed int 
+
+nameExpr is sum
+decl is sum: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        0: const instance of type T (not function type) 
+        ?+?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?++: pointer to function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?+=?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    n: signed int 
+    a: pointer to instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+      Declaration of total: instance of type T (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Variable Expression: 0: const instance of type T (not function type) 
+
+          to:
+            instance of type T (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: total: instance of type T (not function type) 
+
+                          Variable Expression: 0: const instance of type T (not function type) 
+
+          with environment:
+            Types:
+            Non-types:
+
+      Declaration of i: signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 0
+
+          condition: 
+            Cast of:
+              Applying untyped: 
+                  Name: ?!=?
+              ...to: 
+                  Applying untyped: 
+                      Name: ?<?
+                  ...to: 
+                      Name: i
+                      Name: n
+                  Name: 0
+
+            to:
+              signed int 
+
+          increment: 
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: 1
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Address of:
+                        Name: total
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Name: total
+                          Applying untyped: 
+                              Name: ?[?]
+                          ...to: 
+                              Name: a
+                              Name: i
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: total: instance of type T (not function type) 
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: sum: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: pointer to instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: sum: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: pointer to instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              0: const instance of type _0_T (not function type) 
+              ?+?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?++: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?+=?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          n: signed int 
+          a: pointer to instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is a
+decl is a: array of signed int with dimension of Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+with environment:
+  Types:
+  Non-types:
+
+newExpr is Variable Expression: a: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+
+decl is a: pointer to instance of type T (not function type) 
+newExpr is Variable Expression: a: pointer to instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: pointer to instance of type T (not function type) 
+(types:
+    lvalue pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: array of signed int with dimension of   Cast of:
+constant expression 10 signed int 
+  to:
+    long unsigned int 
+  with environment:
+    Types:
+    Non-types:
+
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: pointer to instance of type T (not function type) 
+(types:
+    lvalue pointer to instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: sum: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  0: const instance of type T (not function type) 
+                  ?+?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  ?++: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  ?+=?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              n: signed int 
+              a: pointer to instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      0: const instance of type _0_T (not function type) 
+                      ?+?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      ?++: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      ?+=?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  n: signed int 
+                  a: pointer to instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+formal type is pointer to instance of type _0_T (not function type) 
+actual type is lvalue pointer to signed int 
+need assertions:
+?+?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?+=?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)0: const instance of type _0_T (not function type) (used)?++: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?+?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?+?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+formal type is signed int 
+actual type is signed int 
+formal type is pointer to instance of type _0_T (not function type) 
+actual type is lvalue pointer to instance of type T (not function type) 
+need assertions:
+?+?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?+=?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)0: const instance of type _0_T (not function type) (used)?++: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?+?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+inferRecursive: candidate is ?+?: function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?+?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 160 ?+?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 160 ?+?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                i: instance of type P1 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                j: instance of type P2 (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type T1 (not function type) 
+    _src: instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type T2 (not function type) 
+    _src: instance of type T2 (not function type) 
+  returning 
+    instance of type T2 (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type T3 (not function type) 
+    _src: instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type w3 (not function type) 
+    _src: instance of type w3 (not function type) 
+  returning 
+    instance of type w3 (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to function
+        returning 
+          nothing 
+
+    pointer to function
+        returning 
+          nothing 
+
+  returning 
+    pointer to function
+        returning 
+          nothing 
+
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to float 
+    pointer to float 
+  returning 
+    pointer to float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to pointer to signed int 
+    pointer to signed int 
+  returning 
+    pointer to signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 155 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 196 ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: assertion is ?+=?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?+=?: function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T1 (not function type) 
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?+=?: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+inferRecursive: candidate is ?+=?: function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T3 (not function type) 
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?+=?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 167 ?+=?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 167 ?+=?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: assertion is 0: const instance of type _0_T (not function type) 
+inferRecursive: candidate is 0: const instance of type T (not function type) 
+unifying const instance of type _0_T (not function type)  with const instance of type T (not function type) 
+success!
+satisfying assertion 156 0: const instance of type _0_T (not function type)  with declaration 197 0: const instance of type T (not function type) 
+inferRecursive: assertion is ?++: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?++: function
+  with parameters
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T1 (not function type) 
+  returning 
+    instance of type T1 (not function type) 
+
+inferRecursive: candidate is ?++: function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+  returning 
+    instance of type T2 (not function type) 
+      with parameters
+        instance of type P1 (not function type) 
+        instance of type P2 (not function type) 
+
+
+inferRecursive: candidate is ?++: function
+  with parameters
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T3 (not function type) 
+  returning 
+    instance of type T3 (not function type) 
+
+inferRecursive: candidate is ?++: pointer to function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 163 ?++: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 163 ?++: pointer to function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+inferRecursive: candidate is 0: const instance of type T1 (not function type) 
+unifying const instance of type _0_T (not function type)  with const instance of type T1 (not function type) 
+inferRecursive: candidate is 0: const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+unifying const instance of type _0_T (not function type)  with const instance of type T2 (not function type) 
+with parameters
+  instance of type P1 (not function type) 
+  instance of type P2 (not function type) 
+
+inferRecursive: candidate is 0: const instance of type T3 (not function type) 
+unifying const instance of type _0_T (not function type)  with const instance of type T3 (not function type) 
+actual expression:
+constant expression 10 signed int --- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: pointer to instance of type T (not function type) 
+--- results are
+        lvalue pointer to instance of type T (not function type) 
+
+converting lvalue pointer to instance of type T (not function type) 
+ to pointer to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting const instance of type T (not function type) 
+ to const instance of type _0_T (not function type) 
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        n: signed int 
+        a: pointer to instance of type _0_T (not function type) 
+actuals are:
+        constant expression 10 signed int 
+                  Variable Expression: a: pointer to instance of type T (not function type) 
+
+bindings are:
+        ( _0_T ) -> instance of type T (not function type)  (no widening)
+cost of conversion is:( 0, 13, 0 )
+alternatives before prune:
+Cost ( 0, 13, 0 ): Application of
+  Variable Expression: sum: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            0: const instance of type T (not function type) 
+            ?+?: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            ?++: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            ?+=?: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        n: signed int 
+        a: pointer to instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+  constant expression 10 signed int 
+      Variable Expression: a: pointer to instance of type T (not function type) 
+
+with inferred parameters:
+  ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+  0: const instance of type T (not function type) 
+  ?+?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+  ?++: pointer to function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+  ?+=?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> instance of type T (not function type)  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: sum: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+              0: const instance of type T (not function type) 
+              ?+?: pointer to function
+                  with parameters
+                    instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+              ?++: pointer to function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+              ?+=?: pointer to function
+                  with parameters
+                    instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          n: signed int 
+          a: pointer to instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+    constant expression 10 signed int 
+          Variable Expression: a: pointer to instance of type T (not function type) 
+
+  with inferred parameters:
+    ?=?: pointer to function
+      with parameters
+        pointer to instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+    0: const instance of type T (not function type) 
+    ?+?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+    ?++: pointer to function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+    ?+=?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> instance of type T (not function type)  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type P1 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      i: instance of type P1 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        j: instance of type P2 (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      j: instance of type P2 (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+to:
+  pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+to:
+  pointer to instance of type T2 (not function type) 
+    with parameters
+      signed int 
+      signed int 
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: i
+    Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?!=?
+...to: 
+    Applying untyped: 
+        Name: ?<?
+    ...to: 
+        Name: t1
+        Name: t2
+    Name: 0
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Name: x
+
+Error: No reasonable alternatives for expression Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: min
+...to: 
+constant expression 4.0 double constant expression 3.0 double 
Index: src/Tests/Output-r/Function.txt
===================================================================
--- src/Tests/Output-r/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,4957 @@
+nameExpr is f
+decl is f: function
+  with parameters
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: float 
+newExpr is Variable Expression: a: float 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is float 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Cast of:
+          Variable Expression: a: signed int 
+
+        to:
+          signed int 
+--- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Cast of:
+          Variable Expression: a: signed int 
+
+        to:
+          signed int 
+--- results are
+        signed int 
+
+converting signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Cast of:
+              Variable Expression: a: signed int 
+
+            to:
+              signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: f: function
+      with parameters
+        float 
+      returning 
+        float 
+
+to arguments
+      Cast of:
+      Cast of:
+        Variable Expression: a: signed int 
+
+      to:
+        signed int 
+
+    to:
+      float 
+
+(types:
+    float 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Cast of:
+        Variable Expression: a: signed int 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+  with parameters
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+
+decl is f: function
+  with parameters
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: float 
+newExpr is Variable Expression: a: float 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is float 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: float 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+actual expression:
+        Variable Expression: a: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Variable Expression: a: float 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: float 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: f: function
+      with parameters
+        float 
+      returning 
+        float 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      float 
+
+(types:
+    float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        float 
+      returning 
+        float 
+
+to arguments
+      Variable Expression: a: float 
+
+(types:
+    float 
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 0, 0, 5 )
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Cast of:
+    Application of
+      Variable Expression: f: function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+    to arguments
+              Variable Expression: a: signed int 
+
+
+  to:
+    signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is p
+decl is p: tuple of types
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  double 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+            float 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: p: tuple of types
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+            double 
+
+--- results are
+        lvalue signed int 
+        lvalue double 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue double 
+ to signed int 
+cost is( 1, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: p: tuple of types
+                signed int 
+                double 
+
+
+          to:
+            signed int 
+            signed int 
+
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            char 
+
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: p: tuple of types
+              signed int 
+              signed int 
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          signed int 
+          signed int 
+          float 
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: p: tuple of types
+          signed int 
+          double 
+
+
+    to:
+      signed int 
+      signed int 
+
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+marking ambiguous
+cost ( 0, 0, 4 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Application of
+    Variable Expression: r: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+  to arguments
+          Variable Expression: p: tuple of types
+          signed int 
+          signed int 
+          signed int 
+
+
+          Cast of:
+        Variable Expression: q: tuple of types
+            char 
+
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is p
+decl is p: tuple of types
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  double 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+)
+Environment: 
+
+marking ambiguous
+there are 15 alternatives before elimination
+there are 14 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+        float 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+        double 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: q: tuple of types
+        char 
+
+
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+(types:
+    lvalue char 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+actual expression:
+        Tuple:
+                      Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+
+
+                      Variable Expression: p: tuple of types
+                signed int 
+                double 
+
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue signed int 
+        lvalue double 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue double 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Tuple:
+                              Variable Expression: q: tuple of types
+                    signed int 
+                    signed int 
+
+
+                              Variable Expression: p: tuple of types
+                    signed int 
+                    double 
+
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Tuple:
+                      Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+                      Variable Expression: p: tuple of types
+                signed int 
+
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Tuple:
+                              Variable Expression: q: tuple of types
+                    signed int 
+                    signed int 
+                    float 
+
+
+                              Variable Expression: p: tuple of types
+                    signed int 
+
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Tuple:
+                      Variable Expression: q: tuple of types
+                char 
+
+
+                      Variable Expression: p: tuple of types
+                signed int 
+                signed int 
+                signed int 
+
+
+--- results are
+        lvalue char 
+        lvalue signed int 
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Tuple:
+                              Variable Expression: q: tuple of types
+                    char 
+
+
+                              Variable Expression: p: tuple of types
+                    signed int 
+                    signed int 
+                    signed int 
+
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Tuple:
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+                  Variable Expression: p: tuple of types
+              signed int 
+              double 
+
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Tuple:
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+              float 
+
+
+                  Variable Expression: p: tuple of types
+              signed int 
+
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Tuple:
+                  Variable Expression: q: tuple of types
+              char 
+
+
+                  Variable Expression: p: tuple of types
+              signed int 
+              signed int 
+              signed int 
+
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+marking ambiguous
+cost ( 0, 0, 4 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Application of
+    Variable Expression: r: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+  to arguments
+          Cast of:
+        Tuple:
+                      Variable Expression: q: tuple of types
+                char 
+
+
+                      Variable Expression: p: tuple of types
+                signed int 
+                signed int 
+                signed int 
+
+
+
+      to:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is p
+decl is p: tuple of types
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  double 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+
+decl is p: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+    double 
+
+(types:
+    lvalue signed int 
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: p: tuple of types
+    signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue double 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+            float 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: p: tuple of types
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+            double 
+
+--- results are
+        lvalue signed int 
+        lvalue double 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue double 
+ to signed int 
+cost is( 1, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: p: tuple of types
+                signed int 
+                double 
+
+
+          to:
+            signed int 
+            signed int 
+
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: p: tuple of types
+            signed int 
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            char 
+
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: p: tuple of types
+              signed int 
+              signed int 
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          signed int 
+          signed int 
+          float 
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: p: tuple of types
+          signed int 
+          double 
+
+
+    to:
+      signed int 
+      signed int 
+
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+marking ambiguous
+cost ( 0, 0, 4 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: p: tuple of types
+        signed int 
+        signed int 
+        signed int 
+
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+nameExpr is r
+decl is r: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+    signed int 
+
+newExpr is Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is q
+decl is q: tuple of types
+  char 
+
+newExpr is Variable Expression: q: tuple of types
+    char 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  float 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+
+decl is q: tuple of types
+  signed int 
+  signed int 
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: tuple of types
+    char 
+
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: q: tuple of types
+            char 
+
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+            float 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 4 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+            float 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+        lvalue float 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+actual expression:
+        Variable Expression: q: tuple of types
+            char 
+
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+                float 
+
+
+          to:
+            signed int 
+            signed int 
+            signed int 
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 4 )
+alternatives before prune:
+Cost ( 1, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          signed int 
+          signed int 
+          float 
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+Cost ( 1, 0, 4 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: q: tuple of types
+          signed int 
+          signed int 
+          float 
+
+
+    to:
+      signed int 
+      signed int 
+      signed int 
+
+      Cast of:
+      Variable Expression: q: tuple of types
+          char 
+
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 1, 0, 4 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+      Variable Expression: q: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: r: function
+              with parameters
+                signed int 
+                signed int 
+                signed int 
+                signed int 
+              returning 
+                signed int 
+                signed int 
+
+        to arguments
+                      Variable Expression: p: tuple of types
+                signed int 
+                signed int 
+                signed int 
+
+
+                      Cast of:
+              Variable Expression: q: tuple of types
+                  char 
+
+
+            to:
+              signed int 
+
+--- results are
+        signed int 
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Application of
+          Variable Expression: r: function
+              with parameters
+                signed int 
+                signed int 
+                signed int 
+                signed int 
+              returning 
+                signed int 
+                signed int 
+
+        to arguments
+                      Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+
+
+                      Variable Expression: q: tuple of types
+                signed int 
+                signed int 
+
+
+--- results are
+        signed int 
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Application of
+            Variable Expression: r: function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+          to arguments
+                          Variable Expression: p: tuple of types
+                  signed int 
+                  signed int 
+                  signed int 
+
+
+                          Cast of:
+                Variable Expression: q: tuple of types
+                    char 
+
+
+              to:
+                signed int 
+
+
+                  Application of
+            Variable Expression: r: function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+          to arguments
+                          Variable Expression: q: tuple of types
+                  signed int 
+                  signed int 
+
+
+                          Variable Expression: q: tuple of types
+                  signed int 
+                  signed int 
+
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: r: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+        signed int 
+
+to arguments
+      Application of
+      Variable Expression: r: function
+          with parameters
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+          returning 
+            signed int 
+            signed int 
+
+    to arguments
+              Variable Expression: p: tuple of types
+            signed int 
+            signed int 
+            signed int 
+
+
+              Cast of:
+          Variable Expression: q: tuple of types
+              char 
+
+
+        to:
+          signed int 
+
+
+      Application of
+      Variable Expression: r: function
+          with parameters
+            signed int 
+            signed int 
+            signed int 
+            signed int 
+          returning 
+            signed int 
+            signed int 
+
+    to arguments
+              Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+
+              Variable Expression: q: tuple of types
+            signed int 
+            signed int 
+
+
+
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Application of
+    Variable Expression: r: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+          signed int 
+
+  to arguments
+          Application of
+        Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+      to arguments
+                  Variable Expression: p: tuple of types
+              signed int 
+              signed int 
+              signed int 
+
+
+                  Cast of:
+            Variable Expression: q: tuple of types
+                char 
+
+
+          to:
+            signed int 
+
+
+          Application of
+        Variable Expression: r: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+              signed int 
+
+      to arguments
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+                  Variable Expression: q: tuple of types
+              signed int 
+              signed int 
+
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+cfa-cpp: GenPoly/Box.cc:398: void GenPoly::{anonymous}::Pass1::boxParams(ApplicationExpr*, FunctionType*, std::list<Expression*>::iterator&, const TyVarMap&): Assertion `arg != appExpr->get_args().end()' failed.
+Aborted (core dumped)
Index: src/Tests/Output-r/Functions.txt
===================================================================
--- src/Tests/Output-r/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,91 @@
+nameExpr is *?
+nameExpr is g
+decl is g: pointer to function
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: pointer to function
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: pointer to function
+    returning 
+      nothing 
+
+(types:
+    lvalue pointer to function
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: pointer to function
+            returning 
+              nothing 
+
+(types:
+            lvalue pointer to function
+                returning 
+                  nothing 
+
+)
+        Environment: 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+Case +++++++++++++
+formals are:
+actuals are:
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: pointer to function
+      returning 
+        nothing 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: pointer to function
+        returning 
+          nothing 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: *?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-r/GccExtensions.txt
===================================================================
--- src/Tests/Output-r/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,908 @@
+nameExpr is s1
+decl is s1: signed int 
+newExpr is Variable Expression: s1: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: s1: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is s1
+decl is s1: signed int 
+newExpr is Variable Expression: s1: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: s1: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s2 
+    _src: instance of struct s2 
+  returning 
+    instance of struct s2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct s2 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s2 
+          _src: instance of struct s2 
+        returning 
+          instance of struct s2 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct s2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s2 
+              _src: instance of struct s2 
+            returning 
+              instance of struct s2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s2 
+                  _src: instance of struct s2 
+                returning 
+                  instance of struct s2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s2 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct s2 
+(types:
+    lvalue instance of struct s2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct s2 
+
+to:
+  instance of struct s2 
+(types:
+    instance of struct s2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s2 
+    _src: instance of struct s2 
+  returning 
+    instance of struct s2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct s2 
+
+to:
+  instance of struct s2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s3 
+    _src: instance of struct s3 
+  returning 
+    instance of struct s3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s3 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct s3 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s3 
+      _src: instance of struct s3 
+    returning 
+      instance of struct s3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s2 
+          _src: instance of struct s2 
+        returning 
+          instance of struct s2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s3 
+      _src: instance of struct s3 
+    returning 
+      instance of struct s3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s3 
+          _src: instance of struct s3 
+        returning 
+          instance of struct s3 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct s3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s3 
+              _src: instance of struct s3 
+            returning 
+              instance of struct s3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s3 
+                  _src: instance of struct s3 
+                returning 
+                  instance of struct s3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s2 
+              _src: instance of struct s2 
+            returning 
+              instance of struct s2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s2 
+                  _src: instance of struct s2 
+                returning 
+                  instance of struct s2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s2 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct s3 
+(types:
+    lvalue instance of struct s3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct s3 
+
+to:
+  instance of struct s3 
+(types:
+    instance of struct s3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s2 
+    _src: instance of struct s2 
+  returning 
+    instance of struct s2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s2 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct s2 
+
+to:
+  instance of struct s2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s3 
+    _src: instance of struct s3 
+  returning 
+    instance of struct s3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s3 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct s3 
+
+to:
+  instance of struct s3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s3 
+      _src: instance of struct s3 
+    returning 
+      instance of struct s3 
+
+
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct s4 
+    _src: instance of struct s4 
+  returning 
+    instance of struct s4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct s4 
+              Member Expression, with field: 
+                i: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct s4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct s4 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s4 
+      _src: instance of struct s4 
+    returning 
+      instance of struct s4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s2 
+      _src: instance of struct s2 
+    returning 
+      instance of struct s2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s2 
+          _src: instance of struct s2 
+        returning 
+          instance of struct s2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s3 
+      _src: instance of struct s3 
+    returning 
+      instance of struct s3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s3 
+          _src: instance of struct s3 
+        returning 
+          instance of struct s3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct s4 
+      _src: instance of struct s4 
+    returning 
+      instance of struct s4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct s4 
+          _src: instance of struct s4 
+        returning 
+          instance of struct s4 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct s4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct s4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct s4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s4 
+              _src: instance of struct s4 
+            returning 
+              instance of struct s4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s4 
+                  _src: instance of struct s4 
+                returning 
+                  instance of struct s4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s3 
+              _src: instance of struct s3 
+            returning 
+              instance of struct s3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s3 
+                  _src: instance of struct s3 
+                returning 
+                  instance of struct s3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct s2 
+              _src: instance of struct s2 
+            returning 
+              instance of struct s2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct s2 
+                  _src: instance of struct s2 
+                returning 
+                  instance of struct s2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct s2 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct s4 
+(types:
+    lvalue instance of struct s4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct s4 
+
+to:
+  instance of struct s4 
+(types:
+    instance of struct s4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s2 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s3 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct s4 
+    Member Expression, with field: 
+      i: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct s4 
+
Index: src/Tests/Output-r/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Output-r/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,583 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int main(){
+    int __f1__i;
+    int __f2__i;
+    int *__f3__Pi;
+    int **__f4__PPi;
+    int *const *__f5__PCPi;
+    int *const *const __f6__CPCPi;
+    int *__f7__Pi;
+    int **__f8__PPi;
+    int *const *__f9__PCPi;
+    int *const *const __f10__CPCPi;
+    int *__f11__Pi;
+    int **__f12__PPi;
+    int *const *__f13__PCPi;
+    int *const *const __f14__CPCPi;
+    int __f15__A0i[];
+    int __f16__A0i[((long unsigned int )10)];
+    int __f17__A0i[];
+    int __f18__A0i[((long unsigned int )10)];
+    int *__f19__A0Pi[];
+    int *__f20__A0Pi[((long unsigned int )10)];
+    int **__f21__A0PPi[];
+    int **__f22__A0PPi[((long unsigned int )10)];
+    int *const *__f23__A0PCPi[];
+    int *const *__f24__A0PCPi[((long unsigned int )10)];
+    int *const *const __f25__A0CPCPi[];
+    int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+    int *__f27__A0Pi[];
+    int *__f28__A0Pi[((long unsigned int )10)];
+    int **__f29__A0PPi[];
+    int **__f30__A0PPi[((long unsigned int )10)];
+    int *const *__f31__A0PCPi[];
+    int *const *__f32__A0PCPi[((long unsigned int )10)];
+    int *const *const __f33__A0CPCPi[];
+    int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+    int *__f35__A0Pi[];
+    int *__f36__A0Pi[((long unsigned int )10)];
+    int **__f37__A0PPi[];
+    int **__f38__A0PPi[((long unsigned int )10)];
+    int *const *__f39__A0PCPi[];
+    int *const *__f40__A0PCPi[((long unsigned int )10)];
+    int *const *const __f41__A0CPCPi[];
+    int *const *const __f42__A0CPCPi[((long unsigned int )10)];
+    int __f43__A0A0i[][3];
+    int __f44__A0A0i[((long unsigned int )3)][3];
+    int __f45__A0A0i[][3];
+    int __f46__A0A0i[((long unsigned int )3)][3];
+    int __f47__A0A0i[][3];
+    int __f48__A0A0i[((long unsigned int )3)][3];
+    int *__f49__A0A0Pi[][3];
+    int *__f50__A0A0Pi[((long unsigned int )3)][3];
+    int **__f51__A0A0PPi[][3];
+    int **__f52__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f53__A0A0PCPi[][3];
+    int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f55__A0A0CPCPi[][3];
+    int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+    int *__f57__A0A0Pi[][3];
+    int *__f58__A0A0Pi[((long unsigned int )3)][3];
+    int **__f59__A0A0PPi[][3];
+    int **__f60__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f61__A0A0PCPi[][3];
+    int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f63__A0A0CPCPi[][3];
+    int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+    int __f65__Fi_i_(int );
+    int __f66__Fi_i_(int );
+    int *__f67__FPi_i_(int );
+    int **__f68__FPPi_i_(int );
+    int *const *__f69__FPCPi_i_(int );
+    int *const *const __f70__FCPCPi_i_(int );
+    int *__f71__FPi_i_(int );
+    int **__f72__FPPi_i_(int );
+    int *const *__f73__FPCPi_i_(int );
+    int *const *const __f74__FCPCPi_i_(int );
+    int (*__f75__PFi_i_)(int );
+    int (**__f76__PPFi_i_)(int );
+    int (*const *__f77__PCPFi_i_)(int );
+    int (*const *const __f78__CPCPFi_i_)(int );
+    int (*(*__f79__PFPFi___i_)(int ))();
+    int (*(*const __f80__CPFPFi___i_)(int ))();
+    int (*const (*const __f81__CPFCPFi___i_)(int ))();
+}
Index: src/Tests/Output-r/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Output-r/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+int __fred__Fi_iiPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPiPiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPA0iPA0iPA0iPA0iPA0iPA0iPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPFi_i_PFi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFi_i_PPFi_i_PCPFi_i_CPCPFi_i_PFPFi___i_CPFPFi___i_CPFCPFi___i_CPiCPiPiCPiCPiCPiPiCPiCPPiCPPiPPPiCPPCPiCPCPCPiCPPiCPPiPPPiCPPCPiCPCPCPiCPA0iCPA0iPA0iCPA0iCPA0iCPA0iPA0iCPA0iCPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPiCPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPi_(int __f1__i, int __f2__i, int *__f3__Pi, int **__f4__PPi, int *const *__f5__PCPi, int *const *const __f6__CPCPi, int *__f7__Pi, int **__f8__PPi, int *const *__f9__PCPi, int *const *const __f10__CPCPi, int *__f11__Pi, int **__f12__PPi, int *const *__f13__PCPi, int *const *const __f14__CPCPi, int *__f15__Pi, int __f16__Pi[10], int *__f17__Pi, int __f18__Pi[10], int **__f19__PPi, int *__f20__PPi[10], int ***__f21__PPPi, int **__f22__PPPi[10], int *const **__f23__PPCPi, int *const *__f24__PPCPi[10], int *const *const *__f25__PCPCPi, int *const *const __f26__PCPCPi[10], int **__f27__PPi, int *__f28__PPi[10], int ***__f29__PPPi, int **__f30__PPPi[10], int *const **__f31__PPCPi, int *const *__f32__PPCPi[10], int *const *const *__f33__PCPCPi, int *const *const __f34__PCPCPi[10], int **__f35__PPi, int *__f36__PPi[10], int ***__f37__PPPi, int **__f38__PPPi[10], int *const **__f39__PPCPi, int *const *__f40__PPCPi[10], int *const *const *__f41__PCPCPi, int *const *const __f42__PCPCPi[10], int (*__f43__PA0i)[3], int __f44__PA0i[3][3], int (*__f45__PA0i)[3], int __f46__PA0i[3][3], int (*__f47__PA0i)[3], int __f48__PA0i[3][3], int *(*__f49__PA0Pi)[3], int *__f50__PA0Pi[3][3], int **(*__f51__PA0PPi)[3], int **__f52__PA0PPi[3][3], int *const *(*__f53__PA0PCPi)[3], int *const *__f54__PA0PCPi[3][3], int *const *const (*__f55__PA0CPCPi)[3], int *const *const __f56__PA0CPCPi[3][3], int *(*__f57__PA0Pi)[3], int *__f58__PA0Pi[3][3], int **(*__f59__PA0PPi)[3], int **__f60__PA0PPi[3][3], int *const *(*__f61__PA0PCPi)[3], int *const *__f62__PA0PCPi[3][3], int *const *const (*__f63__PA0CPCPi)[3], int *const *const __f64__PA0CPCPi[3][3], int (*__f65__PFi_i_)(int ), int (*__f66__PFi_i_)(int ), int *(*__f67__PFPi_i_)(int ), int **(*__f68__PFPPi_i_)(int ), int *const *(*__f69__PFPCPi_i_)(int ), int *const *const (*__f70__PFCPCPi_i_)(int ), int *(*__f71__PFPi_i_)(int ), int **(*__f72__PFPPi_i_)(int ), int *const *(*__f73__PFPCPi_i_)(int ), int *const *const (*__f74__PFCPCPi_i_)(int ), int (*__f75__PFi_i_)(int ), int (**__f76__PPFi_i_)(int ), int (*const *__f77__PCPFi_i_)(int ), int (*const *const __f78__CPCPFi_i_)(int ), int (*(*__f79__PFPFi___i_)(int ))(), int (*(*const __f80__CPFPFi___i_)(int ))(), int (*const (*const __f81__CPFCPFi___i_)(int ))(), int __f82__CPi[const *], int __f83__CPi[const 3], int __f84__Pi[static 3], int __f85__CPi[static const 3], int __f86__CPi[const *], int __f87__CPi[const 3], int __f88__Pi[static 3], int __f89__CPi[static const 3], int *__f90__CPPi[const *], int *__f91__CPPi[const 3], int **__f92__PPPi[static 3], int *const *__f93__CPPCPi[static const 3], int *const *const __f94__CPCPCPi[static const 3], int *__f95__CPPi[const *], int *__f96__CPPi[const 3], int **__f97__PPPi[static 3], int *const *__f98__CPPCPi[static const 3], int *const *const __f99__CPCPCPi[static const 3], int __f100__CPA0i[const *][3], int __f101__CPA0i[const 3][3], int __f102__PA0i[static 3][3], int __f103__CPA0i[static const 3][3], int __f104__CPA0i[const *][3], int __f105__CPA0i[const 3][3], int __f106__PA0i[static 3][3], int __f107__CPA0i[static const 3][3], int *__f108__CPA0Pi[const *][3], int *__f109__CPA0Pi[const 3][3], int **__f110__PA0PPi[static 3][3], int *const *__f111__CPA0PCPi[static const 3][3], int *const *const __f112__CPA0CPCPi[static const 3][3], int *__f113__CPA0Pi[const *][3], int *__f114__CPA0Pi[const 3][3], int **__f115__PA0PPi[static 3][3], int *const *__f116__CPA0PCPi[static const 3][3], int *const *const __f117__CPA0CPCPi[static const 3][3]){
+}
Index: src/Tests/Output-r/InferParam.txt
===================================================================
--- src/Tests/Output-r/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2917 @@
+nameExpr is i
+decl is i: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+        f: pointer to function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+newExpr is Variable Expression: g: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+          _1_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_U (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+              f: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _1_U (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                  _1_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_U (not function type) 
+                            instance of type _1_U (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+                      f: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _1_U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)f: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+success!
+satisfying assertion 20 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 12 ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: assertion is f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+success!
+satisfying assertion 23 f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 32 f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 16 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 20 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 8 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: assertion is f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+success!
+satisfying assertion 23 f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 29 f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 16 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 20 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: assertion is f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to double 
+            double 
+          returning 
+            double 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+          returning 
+            double 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: a: signed int 
+
+bindings are:
+        ( _0_T ) -> signed int 
+        ( _1_U ) -> double  (no widening)
+cost of conversion is:( 0, 9, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: a: signed int 
+
+bindings are:
+        ( _0_T ) -> signed int 
+        ( _1_U ) -> float  (no widening)
+cost of conversion is:( 0, 9, 0 )
+alternatives before prune:
+Cost ( 0, 9, 0 ): Application of
+  Variable Expression: g: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: a: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+(types:
+    instance of type _1_U (not function type) 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> double  (no widening)
+
+
+Cost ( 0, 9, 0 ): Application of
+  Variable Expression: g: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: a: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+(types:
+    instance of type _1_U (not function type) 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> float  (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 9, 0 ): Application of
+  Variable Expression: g: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: a: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+(types:
+    float 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> float  (no widening)
+
+
+Cost ( 0, 9, 0 ): Application of
+  Variable Expression: g: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: a: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+(types:
+    double 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> double  (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: i: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is float 
+actual type is double 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: g: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+                U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type U (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+                    f: pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+        to arguments
+                      Variable Expression: a: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+          ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+          f: function
+            with parameters
+              signed int 
+            returning 
+              float 
+
+--- results are
+        float 
+
+converting float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Application of
+            Variable Expression: g: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                  U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type U (not function type) 
+                            instance of type U (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+                      f: pointer to function
+                          with parameters
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+          to arguments
+                          Variable Expression: a: signed int 
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+            ?=?: function
+              with parameters
+                pointer to float 
+                float 
+              returning 
+                float 
+
+            f: function
+              with parameters
+                signed int 
+              returning 
+                float 
+
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+        ( _1_U ) -> float  (no widening)
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Application of
+          Variable Expression: g: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+                U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type U (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+                    f: pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+        to arguments
+                      Variable Expression: a: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+          ?=?: function
+            with parameters
+              pointer to double 
+              double 
+            returning 
+              double 
+
+          f: function
+            with parameters
+              signed int 
+            returning 
+              double 
+
+--- results are
+        double 
+
+converting double 
+ to float 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Application of
+              Variable Expression: g: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+                        f: pointer to function
+                            with parameters
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+            to arguments
+                              Variable Expression: a: signed int 
+
+            with inferred parameters:
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+              ?=?: function
+                with parameters
+                  pointer to double 
+                  double 
+                returning 
+                  double 
+
+              f: function
+                with parameters
+                  signed int 
+                returning 
+                  double 
+
+
+          to:
+            float 
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+        ( _1_U ) -> double  (no widening)
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: i: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Application of
+      Variable Expression: g: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+            U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type U (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+                f: pointer to function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+    to arguments
+              Variable Expression: a: signed int 
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+      ?=?: function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+      f: function
+        with parameters
+          signed int 
+        returning 
+          float 
+
+
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> float  (no widening)
+
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: i: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Application of
+        Variable Expression: g: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: a: signed int 
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+        ?=?: function
+          with parameters
+            pointer to double 
+            double 
+          returning 
+            double 
+
+        f: function
+          with parameters
+            signed int 
+          returning 
+            double 
+
+
+    to:
+      float 
+
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> double  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: i: function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+  to arguments
+          Application of
+        Variable Expression: g: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: a: signed int 
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+        ?=?: function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+        f: function
+          with parameters
+            signed int 
+          returning 
+            float 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> float  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is k
+decl is k: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+        f: pointer to function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+        j: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+newExpr is Variable Expression: k: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          j: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: k: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          j: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+          _1_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_U (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+              f: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+              j: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _1_U (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: k: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  j: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                  _1_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_U (not function type) 
+                            instance of type _1_U (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+                      f: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+                      j: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _1_U (not function type) 
+                          returning 
+                            instance of type _1_U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _1_U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is lvalue signed int 
+need assertions:
+j: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)f: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is j: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is j: function
+  with parameters
+    signed int 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 62 j: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 47 j: function
+  with parameters
+    signed int 
+    float 
+  returning 
+    float 
+
+inferRecursive: assertion is f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    double 
+
+inferRecursive: candidate is f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+success!
+satisfying assertion 58 f: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 29 f: function
+  with parameters
+    signed int 
+  returning 
+    float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+success!
+satisfying assertion 55 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with declaration 8 ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to double 
+    double 
+  returning 
+    double 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 51 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    instance of type _1_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_U (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+            float 
+          returning 
+            float 
+
+ to pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _1_U (not function type) 
+          returning 
+            instance of type _1_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: b: signed int 
+
+bindings are:
+        ( _0_T ) -> signed int 
+        ( _1_U ) -> float  (no widening)
+cost of conversion is:( 0, 12, 0 )
+alternatives before prune:
+Cost ( 0, 12, 0 ): Application of
+  Variable Expression: k: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            j: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: b: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+  j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+(types:
+    instance of type _1_U (not function type) 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> float  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 12, 0 ): Application of
+  Variable Expression: k: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            f: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            j: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: b: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+  f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+  j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+(types:
+    float 
+)
+Environment:   ( _0_T ) -> signed int 
+  ( _1_U ) -> float  (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: i: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: k: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+                U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type U (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+                    f: pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+                    j: pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+        to arguments
+                      Variable Expression: b: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+          ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+          f: function
+            with parameters
+              signed int 
+            returning 
+              float 
+
+          j: function
+            with parameters
+              signed int 
+              float 
+            returning 
+              float 
+
+--- results are
+        float 
+
+converting float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Application of
+            Variable Expression: k: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                  U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type U (not function type) 
+                            instance of type U (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+                      f: pointer to function
+                          with parameters
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+                      j: pointer to function
+                          with parameters
+                            instance of type T (not function type) 
+                            instance of type U (not function type) 
+                          returning 
+                            instance of type U (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+          to arguments
+                          Variable Expression: b: signed int 
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+            ?=?: function
+              with parameters
+                pointer to float 
+                float 
+              returning 
+                float 
+
+            f: function
+              with parameters
+                signed int 
+              returning 
+                float 
+
+            j: function
+              with parameters
+                signed int 
+                float 
+              returning 
+                float 
+
+
+bindings are:
+        ( _0_T ) -> signed int  (no widening)
+        ( _1_U ) -> float  (no widening)
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: i: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Application of
+      Variable Expression: k: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+            U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type U (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+                f: pointer to function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+                j: pointer to function
+                    with parameters
+                      instance of type T (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+    to arguments
+              Variable Expression: b: signed int 
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+      ?=?: function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+      f: function
+        with parameters
+          signed int 
+        returning 
+          float 
+
+      j: function
+        with parameters
+          signed int 
+          float 
+        returning 
+          float 
+
+
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> float  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: i: function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+  to arguments
+          Application of
+        Variable Expression: k: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  f: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  j: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: b: signed int 
+
+      with inferred parameters:
+        ?=?: function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+        ?=?: function
+          with parameters
+            pointer to float 
+            float 
+          returning 
+            float 
+
+        f: function
+          with parameters
+            signed int 
+          returning 
+            float 
+
+        j: function
+          with parameters
+            signed int 
+            float 
+          returning 
+            float 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_T ) -> signed int  (no widening)
+  ( _1_U ) -> float  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_assign__Fi_Pii_(int *, int );
+float ___operator_assign__Ff_Pff_(float *, float );
+double ___operator_assign__Fd_Pdd_(double *, double );
+void __g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void *, void *);
+float __f__Ff_i_(int );
+double __f__Fd_i_(int );
+void __i__F_f_(float );
+void __h__F__(){
+    int __a__i;
+    float _temp0;
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
+    }
+    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    __i__F_f_((__g__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0__Ft1_t0_(_adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), (&_temp0), (&__a__i)) , _temp0));
+}
+;
+float __j__Ff_if_(int , float );
+void __k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(void (*_adapterF2tU_2tT2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tU_2tT_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, long unsigned int U, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__f__PF2tU_2tT_)(), void (*__j__PF2tU_2tT2tU_)(), void *, void *);
+void __l__F__(){
+    int __b__i;
+    float _temp1;
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFf_Pff_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(float *, float ))_adaptee)(_p0, (*((float *)_p1))));
+    }
+    void _adapterFf_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((float *)_ret))=((float (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    void _adapterFf_if_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((float *)_ret))=((float (*)(int , float ))_adaptee)((*((int *)_p0)), (*((float *)_p1))));
+    }
+    __i__F_f_((__k__A2_0_0____operator_assign__PFt0_Pt0t0____operator_assign__PFt1_Pt1t1___f__PFt1_t0___j__PFt1_t0t1__Ft1_t0_(_adapterFf_if_, _adapterFf_i_, _adapterFf_Pff_, _adapterFi_Pii_, sizeof(int ), sizeof(float ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_assign__Ff_Pff_), ((void (*)())__f__Ff_i_), ((void (*)())__j__Ff_if_), (&_temp1), (&__b__i)) , _temp1));
+}
Index: src/Tests/Output-r/Initialization.txt
===================================================================
--- src/Tests/Output-r/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15674 @@
+nameExpr is 0
+nameExpr is 0
+nameExpr is 0
+nameExpr is 0
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 20 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 20 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 20 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 20 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: tuple of types
+    signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: tuple of types
+      signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: tuple of types
+      signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: tuple of types
+    signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: tuple of types
+    signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 2 signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _index0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _index0: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _index0: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+(types:
+    instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 1
+nameExpr is 1
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    g3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  g3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+(types:
+    instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 4 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _index1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _index1: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _index1: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is 0
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+(types:
+    instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+(types:
+    instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    z: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    z: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous4 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous4 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous4 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to instance of struct __anonymous4 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous4 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous4 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to instance of struct __anonymous4 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous4 
+formal type is instance of struct __anonymous4 
+actual type is lvalue instance of struct __anonymous4 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous4 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous4 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous4 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous4 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous4 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct point 
+--- results are
+        pointer to instance of struct __anonymous4 
+
+converting pointer to instance of struct __anonymous4 
+ to pointer to instance of struct __anonymous4 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous4 
+        from aggregate: 
+          Variable Expression: _src: instance of struct point 
+--- results are
+        lvalue instance of struct __anonymous4 
+
+converting lvalue instance of struct __anonymous4 
+ to instance of struct __anonymous4 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous4 
+        _src: instance of struct __anonymous4 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous4 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct point 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous4 
+          from aggregate: 
+            Variable Expression: _src: instance of struct point 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous4 
+        _src: instance of struct __anonymous4 
+      returning 
+        instance of struct __anonymous4 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous4 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous4 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+(types:
+    instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous4 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct point 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous4 
+      from aggregate: 
+        Variable Expression: _src: instance of struct point 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct point 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct point 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct point 
+(types:
+    lvalue instance of struct point 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+(types:
+    instance of struct point 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  v: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    v: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    v: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  v: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  v: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    w: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  w: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                w: tuple of types
+                  signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+      Declaration of _index0: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index0: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            a: array of signed int with dimension of                             Cast of:
+constant expression 3 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous1 
+                          Variable Expression: _index0: signed int 
+
+
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                g3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+      Declaration of _index1: C signed int 
+              Labels: {}
+        For Statement
+          initialization: 
+            Expression Statement:
+              Applying untyped: 
+                  Name: ?=?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+                  Name: 0
+
+          condition: 
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+          increment: 
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Variable Expression: _index1: signed int 
+
+          statement block: 
+            CompoundStmt
+                              Expression Statement:
+                  Applying untyped: 
+                      Name: ?=?
+                  ...to: 
+                      Applying untyped: 
+                          Name: ?+?
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+                      Applying untyped: 
+                          Name: ?[?]
+                      ...to: 
+                          Member Expression, with field: 
+                            f4: array of instance of struct __anonymous2 with dimension of                             Cast of:
+constant expression 4 signed int 
+                            to:
+                              long unsigned int 
+                            with environment:
+                              Types:
+                              Non-types:
+
+                          from aggregate: 
+                            Variable Expression: _src: instance of struct __anonymous3 
+                          Variable Expression: _index1: signed int 
+
+
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct point 
+    _src: instance of struct point 
+  returning 
+    instance of struct point 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous4 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct point 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct point 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct point 
+
+to:
+  instance of struct point 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct quintet 
+    _src: instance of struct quintet 
+  returning 
+    instance of struct quintet 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                v: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                w: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct quintet 
+              Member Expression, with field: 
+                z: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct quintet 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct point 
+          _src: instance of struct point 
+        returning 
+          instance of struct point 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct quintet 
+          _src: instance of struct quintet 
+        returning 
+          instance of struct quintet 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    z: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    z: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct quintet 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  z: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct quintet 
+              _src: instance of struct quintet 
+            returning 
+              instance of struct quintet 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct quintet 
+                  _src: instance of struct quintet 
+                returning 
+                  instance of struct quintet 
+
+)
+        Environment: 
+formal type is pointer to instance of struct quintet 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct point 
+              _src: instance of struct point 
+            returning 
+              instance of struct point 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct point 
+                  _src: instance of struct point 
+                returning 
+                  instance of struct point 
+
+)
+        Environment: 
+formal type is pointer to instance of struct point 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct quintet 
+(types:
+    lvalue instance of struct quintet 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct quintet 
+
+to:
+  instance of struct quintet 
+(types:
+    instance of struct quintet 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 6 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: tuple of types
+          signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      w: tuple of types
+        signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Tuple:
+    constant expression 2 signed int 
+
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 2 signed int 
+to:
+  pointer to instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        g3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      g3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      y3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct point 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct point 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        v: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      v: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        w: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      w: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        z: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct quintet 
+    Member Expression, with field: 
+      z: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct quintet 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 6 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 17 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct point 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct point 
+
Index: src/Tests/Output-r/Initialization2.txt
===================================================================
--- src/Tests/Output-r/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,21582 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 3 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+(types:
+    instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous2 
+(types:
+    lvalue instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+(types:
+    instance of struct __anonymous2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous3 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+(types:
+    instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous3 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous3 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous3 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+(types:
+    pointer to instance of struct __anonymous3 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous3 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous3 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous3 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous3 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous3 
+formal type is instance of struct __anonymous3 
+actual type is lvalue instance of struct __anonymous3 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous3 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous3 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous3 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous3 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous4 
+--- results are
+        pointer to instance of struct __anonymous3 
+
+converting pointer to instance of struct __anonymous3 
+ to pointer to instance of struct __anonymous3 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous3 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous4 
+--- results are
+        lvalue instance of struct __anonymous3 
+
+converting lvalue instance of struct __anonymous3 
+ to instance of struct __anonymous3 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous3 
+        _src: instance of struct __anonymous3 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous3 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous3 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous4 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous3 
+        _src: instance of struct __anonymous3 
+      returning 
+        instance of struct __anonymous3 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous3 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous3 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+(types:
+    instance of struct __anonymous3 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous3 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous3 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous4 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous4 
+(types:
+    lvalue instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+(types:
+    instance of struct __anonymous4 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous5 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+(types:
+    instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous5 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous5 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous5 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+(types:
+    pointer to instance of struct __anonymous5 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous5 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous5 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous5 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to instance of struct __anonymous5 
+formal type is instance of struct __anonymous5 
+actual type is lvalue instance of struct __anonymous5 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous5 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous5 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous5 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous6 
+--- results are
+        pointer to instance of struct __anonymous5 
+
+converting pointer to instance of struct __anonymous5 
+ to pointer to instance of struct __anonymous5 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous5 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous6 
+--- results are
+        lvalue instance of struct __anonymous5 
+
+converting lvalue instance of struct __anonymous5 
+ to instance of struct __anonymous5 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous5 
+        _src: instance of struct __anonymous5 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous5 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous5 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous6 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous5 
+        _src: instance of struct __anonymous5 
+      returning 
+        instance of struct __anonymous5 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous5 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous5 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
+(types:
+    instance of struct __anonymous5 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous5 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous5 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous6 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous6 
+(types:
+    lvalue instance of struct __anonymous6 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+(types:
+    instance of struct __anonymous6 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 9 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 8 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous7 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+there are 8 alternatives before elimination
+there are 8 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous7 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+there are 8 alternatives before elimination
+there are 8 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous7 
+(types:
+    lvalue instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+(types:
+    instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous8 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous8 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous7 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    lvalue instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous7 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    pointer to instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous7 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+(types:
+    pointer to instance of struct __anonymous7 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous7 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous7 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue instance of struct __anonymous7 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to instance of struct __anonymous7 
+formal type is instance of struct __anonymous7 
+actual type is lvalue instance of struct __anonymous7 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous7 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous7 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous7 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous8 
+--- results are
+        pointer to instance of struct __anonymous7 
+
+converting pointer to instance of struct __anonymous7 
+ to pointer to instance of struct __anonymous7 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous7 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous8 
+--- results are
+        lvalue instance of struct __anonymous7 
+
+converting lvalue instance of struct __anonymous7 
+ to instance of struct __anonymous7 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous7 
+        _src: instance of struct __anonymous7 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous7 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous7 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous8 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous7 
+        _src: instance of struct __anonymous7 
+      returning 
+        instance of struct __anonymous7 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous7 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous7 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous8 
+
+(types:
+    instance of struct __anonymous7 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous7 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous7 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous8 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous8 
+(types:
+    lvalue instance of struct __anonymous8 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+(types:
+    instance of struct __anonymous8 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 9 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 8 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous9 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous9 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+there are 10 alternatives before elimination
+there are 10 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous9 
+(types:
+    lvalue instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+(types:
+    instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous10 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+there are 11 alternatives before elimination
+there are 11 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous10 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+there are 11 alternatives before elimination
+there are 11 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous9 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    lvalue instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous9 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    pointer to instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: instance of struct __anonymous9 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+(types:
+    pointer to instance of struct __anonymous9 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous9 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: instance of struct __anonymous9 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue instance of struct __anonymous9 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to instance of struct __anonymous9 
+formal type is instance of struct __anonymous9 
+actual type is lvalue instance of struct __anonymous9 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of struct __anonymous9 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of struct __anonymous9 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: instance of struct __anonymous9 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous10 
+--- results are
+        pointer to instance of struct __anonymous9 
+
+converting pointer to instance of struct __anonymous9 
+ to pointer to instance of struct __anonymous9 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: instance of struct __anonymous9 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous10 
+--- results are
+        lvalue instance of struct __anonymous9 
+
+converting lvalue instance of struct __anonymous9 
+ to instance of struct __anonymous9 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct __anonymous9 
+        _src: instance of struct __anonymous9 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: instance of struct __anonymous9 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                  Member Expression, with field: 
+            y: instance of struct __anonymous9 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous10 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct __anonymous9 
+        _src: instance of struct __anonymous9 
+      returning 
+        instance of struct __anonymous9 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: instance of struct __anonymous9 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+      Member Expression, with field: 
+      y: instance of struct __anonymous9 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous10 
+
+(types:
+    instance of struct __anonymous9 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: instance of struct __anonymous9 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+          Member Expression, with field: 
+        y: instance of struct __anonymous9 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous10 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous10 
+(types:
+    lvalue instance of struct __anonymous10 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+(types:
+    instance of struct __anonymous10 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct t 
+    _src: instance of struct t 
+  returning 
+    instance of struct t 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct t 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct t 
+          _src: instance of struct t 
+        returning 
+          instance of struct t 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct t 
+              _src: instance of struct t 
+            returning 
+              instance of struct t 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct t 
+                  _src: instance of struct t 
+                returning 
+                  instance of struct t 
+
+)
+        Environment: 
+formal type is pointer to instance of struct t 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct t 
+    _src: instance of struct t 
+  returning 
+    instance of struct t 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct t 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct t 
+          _src: instance of struct t 
+        returning 
+          instance of struct t 
+
+)
+Environment: 
+
+there are 12 alternatives before elimination
+there are 12 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct t 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct t 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct t 
+              _src: instance of struct t 
+            returning 
+              instance of struct t 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct t 
+                  _src: instance of struct t 
+                returning 
+                  instance of struct t 
+
+)
+        Environment: 
+formal type is pointer to instance of struct t 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct t 
+(types:
+    lvalue instance of struct t 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct t 
+
+to:
+  instance of struct t 
+(types:
+    instance of struct t 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous11 
+    _src: instance of struct __anonymous11 
+  returning 
+    instance of struct __anonymous11 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous11 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous11 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous11 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct t 
+    _src: instance of struct t 
+  returning 
+    instance of struct t 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct t 
+
+to:
+  instance of struct t 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous11 
+          _src: instance of struct __anonymous11 
+        returning 
+          instance of struct __anonymous11 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct t 
+          _src: instance of struct t 
+        returning 
+          instance of struct t 
+
+)
+Environment: 
+
+there are 13 alternatives before elimination
+there are 13 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    x: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  x: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct t 
+              _src: instance of struct t 
+            returning 
+              instance of struct t 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct t 
+                  _src: instance of struct t 
+                returning 
+                  instance of struct t 
+
+)
+        Environment: 
+formal type is pointer to instance of struct t 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous11 
+              _src: instance of struct __anonymous11 
+            returning 
+              instance of struct __anonymous11 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous11 
+                  _src: instance of struct __anonymous11 
+                returning 
+                  instance of struct __anonymous11 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous11 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous2 
+    _src: instance of struct __anonymous2 
+  returning 
+    instance of struct __anonymous2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous2 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous2 
+
+to:
+  instance of struct __anonymous2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous3 
+    _src: instance of struct __anonymous3 
+  returning 
+    instance of struct __anonymous3 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous3 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous3 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous3 
+
+to:
+  instance of struct __anonymous3 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous4 
+    _src: instance of struct __anonymous4 
+  returning 
+    instance of struct __anonymous4 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous4 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous3 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous4 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous4 
+
+to:
+  instance of struct __anonymous4 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous5 
+    _src: instance of struct __anonymous5 
+  returning 
+    instance of struct __anonymous5 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous5 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous5 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous5 
+
+to:
+  instance of struct __anonymous5 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous6 
+    _src: instance of struct __anonymous6 
+  returning 
+    instance of struct __anonymous6 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous6 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous5 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous6 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous6 
+
+to:
+  instance of struct __anonymous6 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous7 
+    _src: instance of struct __anonymous7 
+  returning 
+    instance of struct __anonymous7 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous7 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous7 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous7 
+
+to:
+  instance of struct __anonymous7 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous8 
+    _src: instance of struct __anonymous8 
+  returning 
+    instance of struct __anonymous8 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous8 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous7 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous8 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous8 
+
+to:
+  instance of struct __anonymous8 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous9 
+    _src: instance of struct __anonymous9 
+  returning 
+    instance of struct __anonymous9 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous9 
+              Member Expression, with field: 
+                y2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous9 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous9 
+
+to:
+  instance of struct __anonymous9 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous10 
+    _src: instance of struct __anonymous10 
+  returning 
+    instance of struct __anonymous10 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous10 
+
+                          Member Expression, with field: 
+                y: instance of struct __anonymous9 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous10 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous10 
+
+to:
+  instance of struct __anonymous10 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous11 
+    _src: instance of struct __anonymous11 
+  returning 
+    instance of struct __anonymous11 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+              Member Expression, with field: 
+                x: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous11 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous11 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous11 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct t 
+    _src: instance of struct t 
+  returning 
+    instance of struct t 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct t 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct t 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct t 
+
+to:
+  instance of struct t 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous2 
+          _src: instance of struct __anonymous2 
+        returning 
+          instance of struct __anonymous2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous3 
+          _src: instance of struct __anonymous3 
+        returning 
+          instance of struct __anonymous3 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous4 
+          _src: instance of struct __anonymous4 
+        returning 
+          instance of struct __anonymous4 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous5 
+          _src: instance of struct __anonymous5 
+        returning 
+          instance of struct __anonymous5 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous6 
+          _src: instance of struct __anonymous6 
+        returning 
+          instance of struct __anonymous6 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous7 
+          _src: instance of struct __anonymous7 
+        returning 
+          instance of struct __anonymous7 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous8 
+          _src: instance of struct __anonymous8 
+        returning 
+          instance of struct __anonymous8 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous9 
+          _src: instance of struct __anonymous9 
+        returning 
+          instance of struct __anonymous9 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous10 
+          _src: instance of struct __anonymous10 
+        returning 
+          instance of struct __anonymous10 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous11 
+          _src: instance of struct __anonymous11 
+        returning 
+          instance of struct __anonymous11 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct t 
+          _src: instance of struct t 
+        returning 
+          instance of struct t 
+
+)
+Environment: 
+
+there are 13 alternatives before elimination
+there are 13 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct t 
+              _src: instance of struct t 
+            returning 
+              instance of struct t 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct t 
+                  _src: instance of struct t 
+                returning 
+                  instance of struct t 
+
+)
+        Environment: 
+formal type is pointer to instance of struct t 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous11 
+              _src: instance of struct __anonymous11 
+            returning 
+              instance of struct __anonymous11 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous11 
+                  _src: instance of struct __anonymous11 
+                returning 
+                  instance of struct __anonymous11 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous11 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous10 
+              _src: instance of struct __anonymous10 
+            returning 
+              instance of struct __anonymous10 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous10 
+                  _src: instance of struct __anonymous10 
+                returning 
+                  instance of struct __anonymous10 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous10 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous9 
+              _src: instance of struct __anonymous9 
+            returning 
+              instance of struct __anonymous9 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous9 
+                  _src: instance of struct __anonymous9 
+                returning 
+                  instance of struct __anonymous9 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous9 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous8 
+              _src: instance of struct __anonymous8 
+            returning 
+              instance of struct __anonymous8 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous8 
+                  _src: instance of struct __anonymous8 
+                returning 
+                  instance of struct __anonymous8 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous8 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous7 
+              _src: instance of struct __anonymous7 
+            returning 
+              instance of struct __anonymous7 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous7 
+                  _src: instance of struct __anonymous7 
+                returning 
+                  instance of struct __anonymous7 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous7 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous6 
+              _src: instance of struct __anonymous6 
+            returning 
+              instance of struct __anonymous6 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous6 
+                  _src: instance of struct __anonymous6 
+                returning 
+                  instance of struct __anonymous6 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous6 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous5 
+              _src: instance of struct __anonymous5 
+            returning 
+              instance of struct __anonymous5 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous5 
+                  _src: instance of struct __anonymous5 
+                returning 
+                  instance of struct __anonymous5 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous5 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous4 
+              _src: instance of struct __anonymous4 
+            returning 
+              instance of struct __anonymous4 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous4 
+                  _src: instance of struct __anonymous4 
+                returning 
+                  instance of struct __anonymous4 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous4 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous3 
+              _src: instance of struct __anonymous3 
+            returning 
+              instance of struct __anonymous3 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous3 
+                  _src: instance of struct __anonymous3 
+                returning 
+                  instance of struct __anonymous3 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous3 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous2 
+              _src: instance of struct __anonymous2 
+            returning 
+              instance of struct __anonymous2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous2 
+                  _src: instance of struct __anonymous2 
+                returning 
+                  instance of struct __anonymous2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous2 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous11 
+(types:
+    lvalue instance of struct __anonymous11 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous11 
+
+to:
+  instance of struct __anonymous11 
+(types:
+    instance of struct __anonymous11 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 6 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous2 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous3 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous3 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous4 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous4 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous5 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous5 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous6 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 9 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 8 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous6 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous7 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous7 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous8 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 7 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 9 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 8 signed int 
+to:
+  instance of struct __anonymous8 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous9 
+    Member Expression, with field: 
+      y2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous9 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous10 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous10 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct t 
+    Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct t 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct t 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct t 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        x: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      x: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous11 
+    Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 5 signed int 
+to:
+  instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 6 signed int 
+to:
+  instance of struct __anonymous11 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 4 signed int 
+to:
+  instance of struct __anonymous11 
+
Index: src/Tests/Output-r/LabelledExit.txt
===================================================================
--- src/Tests/Output-r/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error: 'continue' target label must be an enclosing loop: 
Index: src/Tests/Output-r/Members.txt
===================================================================
--- src/Tests/Output-r/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9113 @@
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct a_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            a: signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct a_struct 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct a_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              a: signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                  Member Expression, with field: 
+            a: signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct a_struct 
+
+      Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct a_struct 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          a: signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct a_struct 
+
+          Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct a_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: char 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: char 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to char 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to char 
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to char 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            a: char 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct a_struct 
+--- results are
+        pointer to char 
+
+converting pointer to char 
+ to pointer to char 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: char 
+        from aggregate: 
+          Variable Expression: _src: instance of struct a_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to char 
+        char 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              a: char 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                  Member Expression, with field: 
+            a: char 
+          from aggregate: 
+            Variable Expression: _src: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to char 
+        char 
+      returning 
+        char 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        a: char 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct a_struct 
+
+      Member Expression, with field: 
+      a: char 
+    from aggregate: 
+      Variable Expression: _src: instance of struct a_struct 
+
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          a: char 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct a_struct 
+
+          Member Expression, with field: 
+        a: char 
+      from aggregate: 
+        Variable Expression: _src: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+              Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct a_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: float 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: float 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct a_struct 
+(types:
+    pointer to float 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to float 
+formal type is float 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to float 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            a: float 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct a_struct 
+--- results are
+        pointer to float 
+
+converting pointer to float 
+ to pointer to float 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: float 
+        from aggregate: 
+          Variable Expression: _src: instance of struct a_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to float 
+        float 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              a: float 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                  Member Expression, with field: 
+            a: float 
+          from aggregate: 
+            Variable Expression: _src: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to float 
+        float 
+      returning 
+        float 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        a: float 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct a_struct 
+
+      Member Expression, with field: 
+      a: float 
+    from aggregate: 
+      Variable Expression: _src: instance of struct a_struct 
+
+(types:
+    float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          a: float 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct a_struct 
+
+          Member Expression, with field: 
+        a: float 
+      from aggregate: 
+        Variable Expression: _src: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+(types:
+    instance of struct a_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is __builtin_memcpy
+decl is __builtin_memcpy: function
+    accepting unspecified arguments
+  returning 
+    pointer to char 
+
+newExpr is Variable Expression: __builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: __builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          pointer to char 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union b_struct 
+(types:
+    lvalue pointer to instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union b_struct 
+(types:
+    lvalue pointer to instance of union b_struct 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _src: instance of union b_struct 
+(types:
+    pointer to instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _src: instance of union b_struct 
+(types:
+    pointer to instance of union b_struct 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union b_struct 
+(types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union b_struct 
+(types:
+    unsigned int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: __builtin_memcpy: function
+              accepting unspecified arguments
+            returning 
+              pointer to char 
+
+(types:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+)
+        Environment: 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: _dst: pointer to instance of union b_struct 
+--- results are
+        lvalue pointer to instance of union b_struct 
+actual expression:
+        Address of:
+          Variable Expression: _src: instance of union b_struct 
+--- results are
+        pointer to instance of union b_struct 
+actual expression:
+        Sizeof Expression on: instance of union b_struct 
+--- results are
+        unsigned int 
+Case +++++++++++++
+formals are:
+actuals are:
+                  Variable Expression: _dst: pointer to instance of union b_struct 
+
+                  Address of:
+            Variable Expression: _src: instance of union b_struct 
+
+                  Sizeof Expression on: instance of union b_struct 
+
+bindings are:
+cost of conversion is:( 3, 0, 0 )
+alternatives before prune:
+Cost ( 3, 0, 0 ): Application of
+  Variable Expression: __builtin_memcpy: function
+        accepting unspecified arguments
+      returning 
+        pointer to char 
+
+to arguments
+      Variable Expression: _dst: pointer to instance of union b_struct 
+
+      Address of:
+      Variable Expression: _src: instance of union b_struct 
+
+      Sizeof Expression on: instance of union b_struct 
+
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: __builtin_memcpy: function
+          accepting unspecified arguments
+        returning 
+          pointer to char 
+
+  to arguments
+          Variable Expression: _dst: pointer to instance of union b_struct 
+
+          Address of:
+        Variable Expression: _src: instance of union b_struct 
+
+          Sizeof Expression on: instance of union b_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+(types:
+    instance of union b_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: function
+  with parameters
+    char 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          char 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_struct
+decl is the_struct: instance of struct a_struct 
+newExpr is Variable Expression: the_struct: instance of struct a_struct 
+
+decl is the_struct: instance of union b_struct 
+newExpr is Variable Expression: the_struct: instance of union b_struct 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: a: function
+            with parameters
+              char 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  char 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is char 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue pointer to signed int 
+formal type is char 
+actual type is lvalue pointer to float 
+formal type is char 
+actual type is lvalue pointer to char 
+actual expression:
+        Member Expression, with field: 
+          a: signed int 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              a: signed int 
+            from aggregate: 
+              Variable Expression: the_struct: instance of struct a_struct 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: float 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              a: float 
+            from aggregate: 
+              Variable Expression: the_struct: instance of struct a_struct 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: char 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Member Expression, with field: 
+            a: char 
+          from aggregate: 
+            Variable Expression: the_struct: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: a: function
+      with parameters
+        char 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+    to:
+      char 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: a: function
+      with parameters
+        char 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Member Expression, with field: 
+        a: float 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+    to:
+      char 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: a: function
+      with parameters
+        char 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      a: char 
+    from aggregate: 
+      Variable Expression: the_struct: instance of struct a_struct 
+
+(types:
+)
+Environment: 
+
+marking ambiguous
+cost ( 0, 0, 0 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: a: function
+        with parameters
+          char 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        a: char 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_struct
+decl is the_struct: instance of struct a_struct 
+newExpr is Variable Expression: the_struct: instance of struct a_struct 
+
+decl is the_struct: instance of union b_struct 
+newExpr is Variable Expression: the_struct: instance of union b_struct 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: b: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue pointer to signed int 
+formal type is signed int 
+actual type is lvalue pointer to float 
+formal type is signed int 
+actual type is lvalue pointer to char 
+actual expression:
+        Member Expression, with field: 
+          a: signed int 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Member Expression, with field: 
+            a: signed int 
+          from aggregate: 
+            Variable Expression: the_struct: instance of struct a_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: float 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              a: float 
+            from aggregate: 
+              Variable Expression: the_struct: instance of struct a_struct 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          a: char 
+        from aggregate: 
+          Variable Expression: the_struct: instance of struct a_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              a: char 
+            from aggregate: 
+              Variable Expression: the_struct: instance of struct a_struct 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: b: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: the_struct: instance of struct a_struct 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: b: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Member Expression, with field: 
+        a: float 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 4 ): Application of
+  Variable Expression: b: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Member Expression, with field: 
+        a: char 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: b: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Variable Expression: the_struct: instance of struct a_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is c
+decl is c: function
+  with parameters
+    pointer to signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_struct
+decl is the_struct: instance of struct a_struct 
+newExpr is Variable Expression: the_struct: instance of struct a_struct 
+
+decl is the_struct: instance of union b_struct 
+newExpr is Variable Expression: the_struct: instance of union b_struct 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: c: function
+            with parameters
+              pointer to signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is lvalue signed int 
+formal type is pointer to signed int 
+actual type is lvalue float 
+formal type is pointer to signed int 
+actual type is lvalue char 
+formal type is pointer to signed int 
+actual type is lvalue pointer to signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is pointer to signed int 
+actual type is lvalue pointer to float 
+formal type is pointer to signed int 
+actual type is lvalue pointer to char 
+actual expression:
+        Member Expression, with field: 
+          a: pointer to signed int 
+        from aggregate: 
+          Variable Expression: the_struct: instance of union b_struct 
+--- results are
+        lvalue pointer to signed int 
+
+converting lvalue pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+actuals are:
+                  Member Expression, with field: 
+            a: pointer to signed int 
+          from aggregate: 
+            Variable Expression: the_struct: instance of union b_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: c: function
+      with parameters
+        pointer to signed int 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      a: pointer to signed int 
+    from aggregate: 
+      Variable Expression: the_struct: instance of union b_struct 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: c: function
+        with parameters
+          pointer to signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        a: pointer to signed int 
+      from aggregate: 
+        Variable Expression: the_struct: instance of union b_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is d
+decl is d: function
+  with parameters
+    pointer to float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_struct
+decl is the_struct: instance of struct a_struct 
+newExpr is Variable Expression: the_struct: instance of struct a_struct 
+
+decl is the_struct: instance of union b_struct 
+newExpr is Variable Expression: the_struct: instance of union b_struct 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue instance of struct a_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue instance of union b_struct 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: float 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: char 
+from aggregate: 
+  Variable Expression: the_struct: instance of struct a_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to signed int 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to float 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: pointer to char 
+from aggregate: 
+  Variable Expression: the_struct: instance of union b_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: d: function
+            with parameters
+              pointer to float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is lvalue signed int 
+formal type is pointer to float 
+actual type is lvalue float 
+formal type is pointer to float 
+actual type is lvalue char 
+formal type is pointer to float 
+actual type is lvalue pointer to signed int 
+formal type is pointer to float 
+actual type is lvalue pointer to float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is pointer to float 
+actual type is lvalue pointer to char 
+actual expression:
+        Member Expression, with field: 
+          a: pointer to float 
+        from aggregate: 
+          Variable Expression: the_struct: instance of union b_struct 
+--- results are
+        lvalue pointer to float 
+
+converting lvalue pointer to float 
+ to pointer to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to float 
+actuals are:
+                  Member Expression, with field: 
+            a: pointer to float 
+          from aggregate: 
+            Variable Expression: the_struct: instance of union b_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: d: function
+      with parameters
+        pointer to float 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      a: pointer to float 
+    from aggregate: 
+      Variable Expression: the_struct: instance of union b_struct 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: d: function
+        with parameters
+          pointer to float 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        a: pointer to float 
+      from aggregate: 
+        Variable Expression: the_struct: instance of union b_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct c_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct c_struct 
+          _src: instance of struct c_struct 
+        returning 
+          instance of struct c_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union b_struct 
+          _src: instance of union b_struct 
+        returning 
+          instance of union b_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union b_struct 
+              _src: instance of union b_struct 
+            returning 
+              instance of union b_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union b_struct 
+                  _src: instance of union b_struct 
+                returning 
+                  instance of union b_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union b_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct c_struct 
+              _src: instance of struct c_struct 
+            returning 
+              instance of struct c_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct c_struct 
+                  _src: instance of struct c_struct 
+                returning 
+                  instance of struct c_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct c_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct c_struct 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct c_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                  Member Expression, with field: 
+            signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct c_struct 
+
+      Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct c_struct 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct c_struct 
+
+          Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct c_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct c_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct c_struct 
+          _src: instance of struct c_struct 
+        returning 
+          instance of struct c_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union b_struct 
+          _src: instance of union b_struct 
+        returning 
+          instance of union b_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    char 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    char 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to char 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to char 
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union b_struct 
+              _src: instance of union b_struct 
+            returning 
+              instance of union b_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union b_struct 
+                  _src: instance of union b_struct 
+                returning 
+                  instance of union b_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union b_struct 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct c_struct 
+              _src: instance of struct c_struct 
+            returning 
+              instance of struct c_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct c_struct 
+                  _src: instance of struct c_struct 
+                returning 
+                  instance of struct c_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct c_struct 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to char 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            char 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct c_struct 
+--- results are
+        pointer to char 
+
+converting pointer to char 
+ to pointer to char 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          char 
+        from aggregate: 
+          Variable Expression: _src: instance of struct c_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to char 
+        char 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              char 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                  Member Expression, with field: 
+            char 
+          from aggregate: 
+            Variable Expression: _src: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to char 
+        char 
+      returning 
+        char 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        char 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct c_struct 
+
+      Member Expression, with field: 
+      char 
+    from aggregate: 
+      Variable Expression: _src: instance of struct c_struct 
+
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          char 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct c_struct 
+
+          Member Expression, with field: 
+        char 
+      from aggregate: 
+        Variable Expression: _src: instance of struct c_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+              Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct c_struct 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct c_struct 
+          _src: instance of struct c_struct 
+        returning 
+          instance of struct c_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union b_struct 
+          _src: instance of union b_struct 
+        returning 
+          instance of union b_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    float 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    float 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct c_struct 
+(types:
+    pointer to float 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to float 
+formal type is float 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union b_struct 
+              _src: instance of union b_struct 
+            returning 
+              instance of union b_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union b_struct 
+                  _src: instance of union b_struct 
+                returning 
+                  instance of union b_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union b_struct 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct c_struct 
+              _src: instance of struct c_struct 
+            returning 
+              instance of struct c_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct c_struct 
+                  _src: instance of struct c_struct 
+                returning 
+                  instance of struct c_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct c_struct 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to float 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to float 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            float 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct c_struct 
+--- results are
+        pointer to float 
+
+converting pointer to float 
+ to pointer to float 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          float 
+        from aggregate: 
+          Variable Expression: _src: instance of struct c_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to float 
+        float 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              float 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                  Member Expression, with field: 
+            float 
+          from aggregate: 
+            Variable Expression: _src: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to float 
+        float 
+      returning 
+        float 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        float 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct c_struct 
+
+      Member Expression, with field: 
+      float 
+    from aggregate: 
+      Variable Expression: _src: instance of struct c_struct 
+
+(types:
+    float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          float 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct c_struct 
+
+          Member Expression, with field: 
+        float 
+      from aggregate: 
+        Variable Expression: _src: instance of struct c_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct c_struct 
+
+to:
+  instance of struct c_struct 
+(types:
+    instance of struct c_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is __builtin_memcpy
+decl is __builtin_memcpy: function
+    accepting unspecified arguments
+  returning 
+    pointer to char 
+
+newExpr is Variable Expression: __builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: __builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          pointer to char 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union d_struct 
+(types:
+    lvalue pointer to instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union d_struct 
+(types:
+    lvalue pointer to instance of union d_struct 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _src: instance of union d_struct 
+(types:
+    pointer to instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: _src: instance of union d_struct 
+(types:
+    pointer to instance of union d_struct 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union d_struct 
+(types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union d_struct 
+(types:
+    unsigned int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: __builtin_memcpy: function
+              accepting unspecified arguments
+            returning 
+              pointer to char 
+
+(types:
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+)
+        Environment: 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: _dst: pointer to instance of union d_struct 
+--- results are
+        lvalue pointer to instance of union d_struct 
+actual expression:
+        Address of:
+          Variable Expression: _src: instance of union d_struct 
+--- results are
+        pointer to instance of union d_struct 
+actual expression:
+        Sizeof Expression on: instance of union d_struct 
+--- results are
+        unsigned int 
+Case +++++++++++++
+formals are:
+actuals are:
+                  Variable Expression: _dst: pointer to instance of union d_struct 
+
+                  Address of:
+            Variable Expression: _src: instance of union d_struct 
+
+                  Sizeof Expression on: instance of union d_struct 
+
+bindings are:
+cost of conversion is:( 3, 0, 0 )
+alternatives before prune:
+Cost ( 3, 0, 0 ): Application of
+  Variable Expression: __builtin_memcpy: function
+        accepting unspecified arguments
+      returning 
+        pointer to char 
+
+to arguments
+      Variable Expression: _dst: pointer to instance of union d_struct 
+
+      Address of:
+      Variable Expression: _src: instance of union d_struct 
+
+      Sizeof Expression on: instance of union d_struct 
+
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: __builtin_memcpy: function
+          accepting unspecified arguments
+        returning 
+          pointer to char 
+
+  to arguments
+          Variable Expression: _dst: pointer to instance of union d_struct 
+
+          Address of:
+        Variable Expression: _src: instance of union d_struct 
+
+          Sizeof Expression on: instance of union d_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of union d_struct 
+
+to:
+  instance of union d_struct 
+(types:
+    instance of union d_struct 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: function
+  with parameters
+    char 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          char 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: instance of struct c_struct 
+newExpr is Variable Expression: x: instance of struct c_struct 
+
+decl is x: instance of union d_struct 
+newExpr is Variable Expression: x: instance of union d_struct 
+
+decl is x: short unsigned int 
+newExpr is Variable Expression: x: short unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: a: function
+            with parameters
+              char 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  char 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is char 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue short unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is char 
+actual type is lvalue pointer to signed int 
+formal type is char 
+actual type is lvalue pointer to float 
+formal type is char 
+actual type is lvalue pointer to char 
+formal type is char 
+actual type is lvalue instance of union d_struct 
+formal type is char 
+actual type is lvalue instance of struct c_struct 
+actual expression:
+        Member Expression, with field: 
+          signed int 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              signed int 
+            from aggregate: 
+              Variable Expression: x: instance of struct c_struct 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          float 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              float 
+            from aggregate: 
+              Variable Expression: x: instance of struct c_struct 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          char 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Member Expression, with field: 
+            char 
+          from aggregate: 
+            Variable Expression: x: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: x: short unsigned int 
+--- results are
+        lvalue short unsigned int 
+
+converting lvalue short unsigned int 
+ to char 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        char 
+actuals are:
+                  Cast of:
+            Variable Expression: x: short unsigned int 
+
+          to:
+            char 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: a: function
+      with parameters
+        char 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: x: short unsigned int 
+
+    to:
+      char 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: a: function
+        with parameters
+          char 
+        returning 
+          nothing 
+
+  to arguments
+          Cast of:
+        Variable Expression: x: short unsigned int 
+
+      to:
+        char 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: instance of struct c_struct 
+newExpr is Variable Expression: x: instance of struct c_struct 
+
+decl is x: instance of union d_struct 
+newExpr is Variable Expression: x: instance of union d_struct 
+
+decl is x: short unsigned int 
+newExpr is Variable Expression: x: short unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: b: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue short unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue pointer to signed int 
+formal type is signed int 
+actual type is lvalue pointer to float 
+formal type is signed int 
+actual type is lvalue pointer to char 
+formal type is signed int 
+actual type is lvalue instance of union d_struct 
+formal type is signed int 
+actual type is lvalue instance of struct c_struct 
+actual expression:
+        Member Expression, with field: 
+          signed int 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Member Expression, with field: 
+            signed int 
+          from aggregate: 
+            Variable Expression: x: instance of struct c_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          float 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              float 
+            from aggregate: 
+              Variable Expression: x: instance of struct c_struct 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          char 
+        from aggregate: 
+          Variable Expression: x: instance of struct c_struct 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Member Expression, with field: 
+              char 
+            from aggregate: 
+              Variable Expression: x: instance of struct c_struct 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 4 )
+actual expression:
+        Variable Expression: x: short unsigned int 
+--- results are
+        lvalue short unsigned int 
+
+converting lvalue short unsigned int 
+ to signed int 
+cost is( 0, 0, 1 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: x: short unsigned int 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 1 )
+alternatives before prune:
+Cost ( 0, 0, 1 ): Application of
+  Variable Expression: b: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Variable Expression: x: short unsigned int 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: b: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Cast of:
+        Variable Expression: x: short unsigned int 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is c
+decl is c: function
+  with parameters
+    pointer to signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: instance of struct c_struct 
+newExpr is Variable Expression: x: instance of struct c_struct 
+
+decl is x: instance of union d_struct 
+newExpr is Variable Expression: x: instance of union d_struct 
+
+decl is x: short unsigned int 
+newExpr is Variable Expression: x: short unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: c: function
+            with parameters
+              pointer to signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is lvalue signed int 
+formal type is pointer to signed int 
+actual type is lvalue float 
+formal type is pointer to signed int 
+actual type is lvalue char 
+formal type is pointer to signed int 
+actual type is lvalue short unsigned int 
+formal type is pointer to signed int 
+actual type is lvalue pointer to signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is pointer to signed int 
+actual type is lvalue pointer to float 
+formal type is pointer to signed int 
+actual type is lvalue pointer to char 
+formal type is pointer to signed int 
+actual type is lvalue instance of union d_struct 
+formal type is pointer to signed int 
+actual type is lvalue instance of struct c_struct 
+actual expression:
+        Member Expression, with field: 
+          pointer to signed int 
+        from aggregate: 
+          Variable Expression: x: instance of union d_struct 
+--- results are
+        lvalue pointer to signed int 
+
+converting lvalue pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+actuals are:
+                  Member Expression, with field: 
+            pointer to signed int 
+          from aggregate: 
+            Variable Expression: x: instance of union d_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: c: function
+      with parameters
+        pointer to signed int 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: x: instance of union d_struct 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: c: function
+        with parameters
+          pointer to signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Variable Expression: x: instance of union d_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is d
+decl is d: function
+  with parameters
+    pointer to float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: instance of struct c_struct 
+newExpr is Variable Expression: x: instance of struct c_struct 
+
+decl is x: instance of union d_struct 
+newExpr is Variable Expression: x: instance of union d_struct 
+
+decl is x: short unsigned int 
+newExpr is Variable Expression: x: short unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  float 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  char 
+from aggregate: 
+  Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int 
+(types:
+    lvalue short unsigned int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to float 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to float 
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Member Expression, with field: 
+  pointer to char 
+from aggregate: 
+  Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct 
+(types:
+    lvalue instance of union d_struct 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct 
+(types:
+    lvalue instance of struct c_struct 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: d: function
+            with parameters
+              pointer to float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is lvalue signed int 
+formal type is pointer to float 
+actual type is lvalue float 
+formal type is pointer to float 
+actual type is lvalue char 
+formal type is pointer to float 
+actual type is lvalue short unsigned int 
+formal type is pointer to float 
+actual type is lvalue pointer to signed int 
+formal type is pointer to float 
+actual type is lvalue pointer to float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is pointer to float 
+actual type is lvalue pointer to char 
+formal type is pointer to float 
+actual type is lvalue instance of union d_struct 
+formal type is pointer to float 
+actual type is lvalue instance of struct c_struct 
+actual expression:
+        Member Expression, with field: 
+          pointer to float 
+        from aggregate: 
+          Variable Expression: x: instance of union d_struct 
+--- results are
+        lvalue pointer to float 
+
+converting lvalue pointer to float 
+ to pointer to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to float 
+actuals are:
+                  Member Expression, with field: 
+            pointer to float 
+          from aggregate: 
+            Variable Expression: x: instance of union d_struct 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: d: function
+      with parameters
+        pointer to float 
+      returning 
+        nothing 
+
+to arguments
+      Member Expression, with field: 
+      pointer to float 
+    from aggregate: 
+      Variable Expression: x: instance of union d_struct 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: d: function
+        with parameters
+          pointer to float 
+        returning 
+          nothing 
+
+  to arguments
+          Member Expression, with field: 
+        pointer to float 
+      from aggregate: 
+        Variable Expression: x: instance of union d_struct 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+newExpr is Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct forward 
+    _src: instance of struct forward 
+  returning 
+    instance of struct forward 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct forward 
+              Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct forward 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct forward 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct c_struct 
+
+to:
+  instance of struct c_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union d_struct 
+    _src: instance of union d_struct 
+  returning 
+    instance of union d_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union d_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union d_struct 
+
+                          Sizeof Expression on: instance of union d_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union d_struct 
+
+to:
+  instance of union d_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union d_struct 
+      _src: instance of union d_struct 
+    returning 
+      instance of union d_struct 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    pointer to forall
+          _0_DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type _0_DT (not function type) 
+          pointer to instance of type _0_DT (not function type) 
+        returning 
+          pointer to instance of type _0_DT (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct forward 
+          _src: instance of struct forward 
+        returning 
+          instance of struct forward 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct a_struct 
+          _src: instance of struct a_struct 
+        returning 
+          instance of struct a_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct c_struct 
+          _src: instance of struct c_struct 
+        returning 
+          instance of struct c_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union b_struct 
+          _src: instance of union b_struct 
+        returning 
+          instance of union b_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of union d_struct 
+      _src: instance of union d_struct 
+    returning 
+      instance of union d_struct 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of union d_struct 
+          _src: instance of union d_struct 
+        returning 
+          instance of union d_struct 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to char 
+          char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to float 
+          float 
+        returning 
+          float 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 9 alternatives before elimination
+there are 9 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct forward 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct forward 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct forward 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct forward 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct forward 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to float 
+              float 
+            returning 
+              float 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+)
+        Environment: 
+formal type is pointer to float 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to char 
+              char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union d_struct 
+              _src: instance of union d_struct 
+            returning 
+              instance of union d_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union d_struct 
+                  _src: instance of union d_struct 
+                returning 
+                  instance of union d_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union d_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of union b_struct 
+              _src: instance of union b_struct 
+            returning 
+              instance of union b_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of union b_struct 
+                  _src: instance of union b_struct 
+                returning 
+                  instance of union b_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of union b_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct c_struct 
+              _src: instance of struct c_struct 
+            returning 
+              instance of struct c_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct c_struct 
+                  _src: instance of struct c_struct 
+                returning 
+                  instance of struct c_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct c_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct a_struct 
+              _src: instance of struct a_struct 
+            returning 
+              instance of struct a_struct 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct a_struct 
+                  _src: instance of struct a_struct 
+                returning 
+                  instance of struct a_struct 
+
+)
+        Environment: 
+formal type is pointer to instance of struct a_struct 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct forward 
+              _src: instance of struct forward 
+            returning 
+              instance of struct forward 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct forward 
+                  _src: instance of struct forward 
+                returning 
+                  instance of struct forward 
+
+)
+        Environment: 
+formal type is pointer to instance of struct forward 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+(types:
+            pointer to forall
+                  _0_DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type _0_DT (not function type) 
+                  pointer to instance of type _0_DT (not function type) 
+                returning 
+                  pointer to instance of type _0_DT (not function type) 
+
+)
+        Environment: 
+formal type is pointer to pointer to instance of type _0_DT (not function type) 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            y: signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct forward 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          y: signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct forward 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              y: signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct forward 
+
+                  Member Expression, with field: 
+            y: signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct forward 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct forward 
+
+      Member Expression, with field: 
+      y: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct forward 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          y: signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct forward 
+
+          Member Expression, with field: 
+        y: signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct forward 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct forward 
+(types:
+    lvalue instance of struct forward 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct forward 
+
+to:
+  instance of struct forward 
+(types:
+    instance of struct forward 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is *?
+decl is *?: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    pointer to instance of type T (not function type) 
+  returning 
+    lvalue instance of type T (not function type) 
+
+newExpr is Variable Expression: *?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: *?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type _0_T (not function type) 
+        returning 
+          lvalue instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is q
+decl is q: pointer to instance of struct forward 
+newExpr is Variable Expression: q: pointer to instance of struct forward 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: pointer to instance of struct forward 
+(types:
+    lvalue pointer to instance of struct forward 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: q: pointer to instance of struct forward 
+(types:
+    lvalue pointer to instance of struct forward 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: *?: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              pointer to instance of type T (not function type) 
+            returning 
+              lvalue instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  pointer to instance of type _0_T (not function type) 
+                returning 
+                  lvalue instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type _0_T (not function type) 
+actual type is lvalue pointer to instance of struct forward 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to forall
+    _1_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _1_DT (not function type) 
+    pointer to instance of type _1_DT (not function type) 
+  returning 
+    pointer to instance of type _1_DT (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct forward 
+    _src: instance of struct forward 
+  returning 
+    instance of struct forward 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct forward 
+
+                          Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct forward 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct forward 
+
+to:
+  instance of struct forward 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of struct forward 
+    _src: instance of struct forward 
+  returning 
+    instance of struct forward 
+
+success!
+satisfying assertion 25 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 79 ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct forward 
+    _src: instance of struct forward 
+  returning 
+    instance of struct forward 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct forward 
+
+                          Member Expression, with field: 
+                y: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct forward 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct forward 
+
+to:
+  instance of struct forward 
+with environment:
+  Types:
+  Non-types:
+
+
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct a_struct 
+
+                          Member Expression, with field: 
+                a: float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct a_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct a_struct 
+
+to:
+  instance of struct a_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of struct a_struct 
+    _src: instance of struct a_struct 
+  returning 
+    instance of struct a_struct 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to char 
+                  char 
+                returning 
+                  char 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                char 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: function
+                with parameters
+                  pointer to float 
+                  float 
+                returning 
+                  float 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct c_struct 
+
+                          Member Expression, with field: 
+                float 
+              from aggregate: 
+                Variable Expression: _src: instance of struct c_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct c_struct 
+
+to:
+  instance of struct c_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of struct c_struct 
+    _src: instance of struct c_struct 
+  returning 
+    instance of struct c_struct 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union b_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union b_struct 
+
+                          Sizeof Expression on: instance of union b_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union b_struct 
+
+to:
+  instance of union b_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of union b_struct 
+    _src: instance of union b_struct 
+  returning 
+    instance of union b_struct 
+
+inferRecursive: candidate is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of union d_struct 
+    _src: instance of union d_struct 
+  returning 
+    instance of union d_struct 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Application of
+            Variable Expression: __builtin_memcpy: function
+                  accepting unspecified arguments
+                returning 
+                  pointer to char 
+
+          to arguments
+                          Variable Expression: _dst: pointer to instance of union d_struct 
+
+                          Address of:
+                Variable Expression: _src: instance of union d_struct 
+
+                          Sizeof Expression on: instance of union d_struct 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of union d_struct 
+
+to:
+  instance of union d_struct 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of union d_struct 
+    _src: instance of union d_struct 
+  returning 
+    instance of union d_struct 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to char 
+    char 
+  returning 
+    char 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to float 
+    float 
+  returning 
+    float 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: q: pointer to instance of struct forward 
+--- results are
+        lvalue pointer to instance of struct forward 
+
+converting lvalue pointer to instance of struct forward 
+ to pointer to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            _dst: pointer to instance of struct forward 
+            _src: instance of struct forward 
+          returning 
+            instance of struct forward 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type _0_T (not function type) 
+actuals are:
+                  Variable Expression: q: pointer to instance of struct forward 
+
+bindings are:
+        ( _0_T ) -> instance of struct forward  (no widening)
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: *?: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        pointer to instance of type T (not function type) 
+      returning 
+        lvalue instance of type T (not function type) 
+
+to arguments
+      Variable Expression: q: pointer to instance of struct forward 
+
+with inferred parameters:
+  ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+(types:
+    lvalue instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> instance of struct forward  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 4, 0 ): Member Expression, with field: 
+  y: signed int 
+from aggregate: 
+  Application of
+    Variable Expression: *?: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type T (not function type) 
+        returning 
+          lvalue instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: q: pointer to instance of struct forward 
+
+  with inferred parameters:
+    ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct forward 
+        _src: instance of struct forward 
+      returning 
+        instance of struct forward 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Member Expression, with field: 
+    y: signed int 
+  from aggregate: 
+    Application of
+      Variable Expression: *?: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            pointer to instance of type T (not function type) 
+          returning 
+            lvalue instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: q: pointer to instance of struct forward 
+
+    with inferred parameters:
+      ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct forward 
+          _src: instance of struct forward 
+        returning 
+          instance of struct forward 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: unbound type variable in application Application of
+  Variable Expression: *?: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        pointer to instance of type T (not function type) 
+      returning 
+        pointer to instance of type T (not function type) 
+
+to arguments
+      Variable Expression: q: pointer to instance of struct forward 
+
+with inferred parameters:
+  ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+
+
Index: src/Tests/Output-r/Misc.txt
===================================================================
--- src/Tests/Output-r/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1510 @@
+nameExpr is g
+decl is g: function
+  with parameters
+    unsigned int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              unsigned int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is unsigned int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is unsigned int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: float 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to unsigned int 
+cost is( 0, 0, 1 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: signed int 
+
+          to:
+            unsigned int 
+
+bindings are:
+cost of conversion is:( 0, 0, 1 )
+actual expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to unsigned int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: float 
+
+          to:
+            unsigned int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Comma Expression:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: b: float 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: b: signed int 
+
+    to:
+      unsigned int 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: b: float 
+
+    to:
+      unsigned int 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: b: signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    unsigned int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Comma Expression:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Comma Expression:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              unsigned int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is unsigned int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is unsigned int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Comma Expression:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Comma Expression:
+            Comma Expression:
+              Variable Expression: a: signed int 
+
+              Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Comma Expression:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: a: signed int 
+
+          Variable Expression: b: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Comma Expression:
+                Variable Expression: a: signed int 
+
+                Variable Expression: a: signed int 
+
+              Variable Expression: b: float 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Comma Expression:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to unsigned int 
+cost is( 0, 0, 1 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Comma Expression:
+                Variable Expression: a: signed int 
+
+                Variable Expression: a: signed int 
+
+              Variable Expression: b: signed int 
+
+          to:
+            unsigned int 
+
+bindings are:
+cost of conversion is:( 0, 0, 1 )
+actual expression:
+        Comma Expression:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: a: signed int 
+
+          Variable Expression: b: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to unsigned int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Cast of:
+            Comma Expression:
+              Comma Expression:
+                Variable Expression: a: signed int 
+
+                Variable Expression: a: signed int 
+
+              Variable Expression: b: float 
+
+          to:
+            unsigned int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Comma Expression:
+      Comma Expression:
+        Variable Expression: a: signed int 
+
+        Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: a: signed int 
+
+        Variable Expression: b: float 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: a: signed int 
+
+        Variable Expression: b: signed int 
+
+    to:
+      unsigned int 
+
+(types:
+)
+Environment: 
+
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Comma Expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: a: signed int 
+
+        Variable Expression: b: float 
+
+    to:
+      unsigned int 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Comma Expression:
+        Comma Expression:
+          Variable Expression: a: signed int 
+
+          Variable Expression: a: signed int 
+
+        Variable Expression: b: signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    unsigned int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Sizeof Expression on:   Variable Expression: a: signed int 
+
+(types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Sizeof Expression on:   Variable Expression: a: signed int 
+
+(types:
+    unsigned int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              unsigned int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is unsigned int 
+actual type is unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Sizeof Expression on:           Variable Expression: a: signed int 
+
+--- results are
+        unsigned int 
+
+converting unsigned int 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Sizeof Expression on:               Variable Expression: a: signed int 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Sizeof Expression on:           Variable Expression: a: signed int 
+
+--- results are
+        unsigned int 
+
+converting unsigned int 
+ to unsigned int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Sizeof Expression on:             Variable Expression: a: signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Sizeof Expression on:         Variable Expression: a: signed int 
+
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Sizeof Expression on:       Variable Expression: a: signed int 
+
+
+(types:
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+  to arguments
+          Sizeof Expression on:         Variable Expression: a: signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    unsigned int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Sizeof Expression on: signed int 
+(types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Sizeof Expression on: signed int 
+(types:
+    unsigned int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              unsigned int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  unsigned int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is unsigned int 
+actual type is unsigned int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Sizeof Expression on: signed int 
+--- results are
+        unsigned int 
+
+converting unsigned int 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Sizeof Expression on: signed int 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Sizeof Expression on: signed int 
+--- results are
+        unsigned int 
+
+converting unsigned int 
+ to unsigned int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        unsigned int 
+actuals are:
+                  Sizeof Expression on: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Sizeof Expression on: signed int 
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        unsigned int 
+      returning 
+        nothing 
+
+to arguments
+      Sizeof Expression on: signed int 
+
+(types:
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          unsigned int 
+        returning 
+          nothing 
+
+  to arguments
+          Sizeof Expression on: signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __a__i;
+int __b__i;
+float __b__f;
+void __g__F_i_(int );
+void __g__F_Ui_(unsigned int );
+void __f__F__(void){
+    __g__F_i_((__a__i , __b__i));
+    __g__F_i_(((__a__i , __a__i) , __b__i));
+    __g__F_Ui_(sizeof(__a__i));
+    __g__F_Ui_(sizeof(int ));
+}
Index: src/Tests/Output-r/MiscError.txt
===================================================================
--- src/Tests/Output-r/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,385 @@
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: float 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+marking ambiguous
+there are 1 alternatives before elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: float 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+marking ambiguous
+there are 1 alternatives before elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: a: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Comma Expression:
+  Variable Expression: a: signed int 
+
+  Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: b: signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 1 ): Cast of:
+  Comma Expression:
+    Variable Expression: a: signed int 
+
+    Variable Expression: b: float 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+marking ambiguous
+there are 1 alternatives before elimination
+nameExpr is b
+decl is b: float 
+newExpr is Variable Expression: b: float 
+
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Can't choose between alternatives for expression Cast of:
+  Comma Expression:
+    Name: a
+
+    Name: b
+
+to:
+  nothing
+Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: signed int 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+        Cost ( 0, 0, 1 ):         Cast of:
+          Comma Expression:
+            Variable Expression: a: signed int 
+
+            Variable Expression: b: float 
+
+        to:
+          nothing
+(types:
+)
+        Environment: 
+
+
+Error: Ambiguous expression in sizeof operand: Name: b
+
Index: src/Tests/Output-r/NamedParmArg.txt
===================================================================
--- src/Tests/Output-r/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1095 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 3 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+constant expression 3 signed int 
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f1: function
+            with parameters
+              i: signed int with initializer 
+                Simple Initializer:                   Cast of:
+constant expression 3 signed int 
+                  to:
+                    signed int 
+                  with environment:
+                    Types:
+                    Non-types:
+
+              j: pointer to signed int with initializer 
+                Simple Initializer:                   Name: 0
+
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  i: signed int with initializer 
+                    Simple Initializer:                       Cast of:
+constant expression 3 signed int 
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+
+                  j: pointer to signed int with initializer 
+                    Simple Initializer:                       Name: 0
+
+                returning 
+                  signed int 
+
+)
+        Environment: 
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f1: function
+            with parameters
+              i: signed int with initializer 
+                Simple Initializer:                   Cast of:
+constant expression 3 signed int 
+                  to:
+                    signed int 
+                  with environment:
+                    Types:
+                    Non-types:
+
+              j: pointer to signed int with initializer 
+                Simple Initializer:                   Name: 0
+
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  i: signed int with initializer 
+                    Simple Initializer:                       Cast of:
+constant expression 3 signed int 
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+
+                  j: pointer to signed int with initializer 
+                    Simple Initializer:                       Name: 0
+
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f1: function
+            with parameters
+              i: signed int with initializer 
+                Simple Initializer:                   Cast of:
+constant expression 3 signed int 
+                  to:
+                    signed int 
+                  with environment:
+                    Types:
+                    Non-types:
+
+              j: pointer to signed int with initializer 
+                Simple Initializer:                   Name: 0
+
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  i: signed int with initializer 
+                    Simple Initializer:                       Cast of:
+constant expression 3 signed int 
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+
+                  j: pointer to signed int with initializer 
+                    Simple Initializer:                       Name: 0
+
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int with designator:  Name: i
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int with designator:  Name: i
+(types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+nameExpr is f1
+decl is f1: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int with initializer 
+      Simple Initializer:         Name: 0
+
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int with initializer 
+            Simple Initializer:               Name: 0
+
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f2
+decl is f2: function
+  with parameters
+    i: signed int with initializer 
+      Simple Initializer:         Cast of:
+constant expression 3 signed int 
+        to:
+          signed int 
+        with environment:
+          Types:
+          Non-types:
+
+    j: pointer to signed int 
+  returning 
+    signed int 
+    signed int 
+  with body 
+    CompoundStmt
+
+newExpr is Variable Expression: f2: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int 
+    returning 
+      signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f2: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer:           Cast of:
+constant expression 3 signed int 
+          to:
+            signed int 
+          with environment:
+            Types:
+            Non-types:
+
+      j: pointer to signed int 
+    returning 
+      signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          i: signed int with initializer 
+            Simple Initializer:               Cast of:
+constant expression 3 signed int 
+              to:
+                signed int 
+              with environment:
+                Types:
+                Non-types:
+
+          j: pointer to signed int 
+        returning 
+          signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f2: function
+            with parameters
+              i: signed int with initializer 
+                Simple Initializer:                   Cast of:
+constant expression 3 signed int 
+                  to:
+                    signed int 
+                  with environment:
+                    Types:
+                    Non-types:
+
+              j: pointer to signed int 
+            returning 
+              signed int 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  i: signed int with initializer 
+                    Simple Initializer:                       Cast of:
+constant expression 3 signed int 
+                      to:
+                        signed int 
+                      with environment:
+                        Types:
+                        Non-types:
+
+                  j: pointer to signed int 
+                returning 
+                  signed int 
+                  signed int 
+
+)
+        Environment: 
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f1
+...to: 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Name: 0
+with designator:  Name: j
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f2
+...to: 
+with designator:  Tuple:
+          Name: j
+
+          Name: i
+
+
Index: src/Tests/Output-r/NumericConstants.txt
===================================================================
--- src/Tests/Output-r/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,744 @@
+nameExpr is 1
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 21 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 21 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2147483647 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 2147483647 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 37LL long long signed int (types:
+    long long signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 37LL long long signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 45ull long long unsigned int (types:
+    long long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 45ull long long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 89llu long long unsigned int (types:
+    long long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 89llu long long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 99LLu long long unsigned int (types:
+    long long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 99LLu long long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 56lu long unsigned int (types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 56lu long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 88LLu long long unsigned int (types:
+    long long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 88LLu long long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0u unsigned int (types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0u unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0377 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0377 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0377ul long unsigned int (types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0377ul long unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x1 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x1 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x1u unsigned int (types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x1u unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0xabL long signed int (types:
+    long signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0xabL long signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x80000000 unsigned int (types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x80000000 unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0xfff signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0xfff signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0xef3daa5c unsigned int (types:
+    unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0xef3daa5c unsigned int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x3LL long long signed int (types:
+    long long signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x3LL long long signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3. double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3. double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3100. double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3100. double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 1000000. double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 1000000. double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.1 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.1 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.141592654L long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.141592654L long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 123456.123456 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 123456.123456 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3E1 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3E1 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3e1f float (types:
+    float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3e1f float 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3E11F float (types:
+    float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3E11F float 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3E11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3E11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3e+11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3e+11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3E-11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3E-11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0E1 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0E1 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0E1L long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0E1L long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0e11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0e11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0E11l long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0E11l long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0e+11l long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0e+11l long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.0E-11 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3.0E-11 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 123456.123456E-16 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 123456.123456E-16 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0xff.ffp0 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0xff.ffp0 double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 0x1.ffffffffp128l long double (types:
+    long double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 0x1.ffffffffp128l long double 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Name: 1
+
Index: src/Tests/Output-r/OccursError.txt
===================================================================
--- src/Tests/Output-r/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,303 @@
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    pointer to function
+        with parameters
+          instance of type T (not function type) 
+          pointer to instance of type T (not function type) 
+        returning 
+          nothing 
+
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to function
+          with parameters
+            instance of type T (not function type) 
+            pointer to instance of type T (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to function
+          with parameters
+            instance of type T (not function type) 
+            pointer to instance of type T (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          pointer to function
+              with parameters
+                instance of type _0_T (not function type) 
+                pointer to instance of type _0_T (not function type) 
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: forall
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    pointer to instance of type U (not function type) 
+    instance of type U (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_U (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type _1_U (not function type) 
+          instance of type _1_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: g: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_U (not function type) 
+                    instance of type _1_U (not function type) 
+                  returning 
+                    instance of type _1_U (not function type) 
+
+
+        function
+        with parameters
+          pointer to instance of type _1_U (not function type) 
+          instance of type _1_U (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              pointer to function
+                  with parameters
+                    instance of type T (not function type) 
+                    pointer to instance of type T (not function type) 
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  pointer to function
+                      with parameters
+                        instance of type _0_T (not function type) 
+                        pointer to instance of type _0_T (not function type) 
+                      returning 
+                        nothing 
+
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    pointer to instance of type _0_T (not function type) 
+  returning 
+    nothing 
+
+actual type is pointer to forall
+    _1_U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _1_U (not function type) 
+              instance of type _1_U (not function type) 
+            returning 
+              instance of type _1_U (not function type) 
+
+
+  function
+  with parameters
+    pointer to instance of type _1_U (not function type) 
+    instance of type _1_U (not function type) 
+  returning 
+    nothing 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+    Name: g
+
Index: src/Tests/Output-r/Operators.txt
===================================================================
--- src/Tests/Output-r/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1796 @@
+nameExpr is ?*?
+decl is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is number1
+decl is number1: signed int 
+newExpr is Variable Expression: number1: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: number1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: number1: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is number2
+decl is number2: signed int 
+newExpr is Variable Expression: number2: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: number2: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: number2: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?*?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: number1: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: number2: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: number1: signed int 
+
+                  Variable Expression: number2: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?*?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: number1: signed int 
+
+      Variable Expression: number2: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct accumulator 
+    _src: instance of struct accumulator 
+  returning 
+    instance of struct accumulator 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  total: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct accumulator 
+              Member Expression, with field: 
+                total: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct accumulator 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct accumulator 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct accumulator 
+      _src: instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct accumulator 
+      _src: instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct accumulator 
+          _src: instance of struct accumulator 
+        returning 
+          instance of struct accumulator 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  total: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct accumulator 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    total: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct accumulator 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    total: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct accumulator 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  total: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct accumulator 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  total: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct accumulator 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct accumulator 
+              _src: instance of struct accumulator 
+            returning 
+              instance of struct accumulator 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct accumulator 
+                  _src: instance of struct accumulator 
+                returning 
+                  instance of struct accumulator 
+
+)
+        Environment: 
+formal type is pointer to instance of struct accumulator 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            total: signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct accumulator 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          total: signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct accumulator 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              total: signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct accumulator 
+
+                  Member Expression, with field: 
+            total: signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct accumulator 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        total: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct accumulator 
+
+      Member Expression, with field: 
+      total: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct accumulator 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          total: signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct accumulator 
+
+          Member Expression, with field: 
+        total: signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct accumulator 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct accumulator 
+(types:
+    lvalue instance of struct accumulator 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct accumulator 
+
+to:
+  instance of struct accumulator 
+(types:
+    instance of struct accumulator 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?()
+decl is ?(): function
+  with parameters
+    a: instance of struct accumulator 
+    number1: char 
+    number2: char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+
+decl is ?(): function
+  with parameters
+    number1: signed int 
+    number2: signed int 
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          a: instance of struct accumulator 
+          number1: char 
+          number2: char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: char 
+newExpr is Variable Expression: a: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is b
+decl is b: char 
+newExpr is Variable Expression: b: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              number1: signed int 
+              number2: signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  number1: signed int 
+                  number2: signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              a: instance of struct accumulator 
+              number1: char 
+              number2: char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  a: instance of struct accumulator 
+                  number1: char 
+                  number2: char 
+                returning 
+                  char 
+
+)
+        Environment: 
+formal type is instance of struct accumulator 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        number1: signed int 
+        number2: signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: char 
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: b: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 8 )
+alternatives before prune:
+Cost ( 0, 0, 8 ): Application of
+  Variable Expression: ?(): function
+      with parameters
+        number1: signed int 
+        number2: signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: char 
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: b: char 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?(): function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Cast of:
+        Variable Expression: a: char 
+
+      to:
+        signed int 
+
+          Cast of:
+        Variable Expression: b: char 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: char 
+newExpr is Variable Expression: a: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: char 
+newExpr is Variable Expression: b: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: a: char 
+(types:
+            lvalue char 
+)
+        Environment: 
+nameExpr is ?()
+decl is ?(): function
+  with parameters
+    a: instance of struct accumulator 
+    number1: char 
+    number2: char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+
+decl is ?(): function
+  with parameters
+    number1: signed int 
+    number2: signed int 
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          a: instance of struct accumulator 
+          number1: char 
+          number2: char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+known function ops:
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              number1: signed int 
+              number2: signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  number1: signed int 
+                  number2: signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              a: instance of struct accumulator 
+              number1: char 
+              number2: char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  a: instance of struct accumulator 
+                  number1: char 
+                  number2: char 
+                returning 
+                  char 
+
+)
+        Environment: 
+
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is instance of struct accumulator 
+actual type is lvalue char 
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        number1: signed int 
+        number2: signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: char 
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: b: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 8 )
+alternatives before prune:
+Cost ( 0, 0, 8 ): Application of
+  Variable Expression: ?(): function
+      with parameters
+        number1: signed int 
+        number2: signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: char 
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: b: char 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?(): function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Cast of:
+        Variable Expression: a: char 
+
+      to:
+        signed int 
+
+          Cast of:
+        Variable Expression: b: char 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?+?
+decl is ?+?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: char 
+newExpr is Variable Expression: a: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is b
+decl is b: char 
+newExpr is Variable Expression: b: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: char 
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: b: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 8 )
+alternatives before prune:
+Cost ( 0, 0, 8 ): Application of
+  Variable Expression: ?+?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: char 
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: b: char 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?+?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Cast of:
+        Variable Expression: a: char 
+
+      to:
+        signed int 
+
+          Cast of:
+        Variable Expression: b: char 
+
+      to:
+        signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?+?
+decl is ?+?: instance of struct accumulator 
+newExpr is Variable Expression: ?+?: instance of struct accumulator 
+
+decl is ?+?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: instance of struct accumulator 
+(types:
+    lvalue instance of struct accumulator 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: char 
+newExpr is Variable Expression: a: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+nameExpr is b
+decl is b: char 
+newExpr is Variable Expression: b: char 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue char 
+formal type is signed int 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?+?: instance of struct accumulator 
+(types:
+            lvalue instance of struct accumulator 
+)
+        Environment: 
+nameExpr is ?()
+decl is ?(): function
+  with parameters
+    a: instance of struct accumulator 
+    number1: char 
+    number2: char 
+  returning 
+    char 
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+
+decl is ?(): function
+  with parameters
+    number1: signed int 
+    number2: signed int 
+  returning 
+    signed int 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: number1: signed int 
+
+          Variable Expression: number2: signed int 
+
+
+to:
+  signed int 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+(types:
+    pointer to function
+        with parameters
+          a: instance of struct accumulator 
+          number1: char 
+          number2: char 
+        returning 
+          char 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          number1: signed int 
+          number2: signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+known function ops:
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              number1: signed int 
+              number2: signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  number1: signed int 
+                  number2: signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+
+        Cost ( 0, 0, 0 ):         Variable Expression: ?(): function
+            with parameters
+              a: instance of struct accumulator 
+              number1: char 
+              number2: char 
+            returning 
+              char 
+
+(types:
+            pointer to function
+                with parameters
+                  a: instance of struct accumulator 
+                  number1: char 
+                  number2: char 
+                returning 
+                  char 
+
+)
+        Environment: 
+
+formal type is signed int 
+actual type is lvalue instance of struct accumulator 
+formal type is instance of struct accumulator 
+actual type is lvalue instance of struct accumulator 
+formal type is char 
+actual type is lvalue char 
+formal type is char 
+actual type is lvalue char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to signed int 
+cost is( 0, 0, 4 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: a: char 
+
+          to:
+            signed int 
+
+                  Cast of:
+            Variable Expression: b: char 
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 8 )
+actual expression:
+        Variable Expression: ?+?: instance of struct accumulator 
+--- results are
+        lvalue instance of struct accumulator 
+
+converting lvalue instance of struct accumulator 
+ to instance of struct accumulator 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: b: char 
+--- results are
+        lvalue char 
+
+converting lvalue char 
+ to char 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        a: instance of struct accumulator 
+        number1: char 
+        number2: char 
+actuals are:
+                  Variable Expression: ?+?: instance of struct accumulator 
+
+                  Variable Expression: a: char 
+
+                  Variable Expression: b: char 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 8 ): Application of
+  Variable Expression: ?+?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: char 
+
+    to:
+      signed int 
+
+      Cast of:
+      Variable Expression: b: char 
+
+    to:
+      signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?(): function
+      with parameters
+        a: instance of struct accumulator 
+        number1: char 
+        number2: char 
+      returning 
+        char 
+
+to arguments
+      Variable Expression: ?+?: instance of struct accumulator 
+
+      Variable Expression: a: char 
+
+      Variable Expression: b: char 
+
+(types:
+    char 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?(): function
+        with parameters
+          a: instance of struct accumulator 
+          number1: char 
+          number2: char 
+        returning 
+          char 
+
+  to arguments
+          Variable Expression: ?+?: instance of struct accumulator 
+
+          Variable Expression: a: char 
+
+          Variable Expression: b: char 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_multiply__Fi_ii_(int , int );
+int ___operator_call__Fi_ii_(int __number1__i, int __number2__i){
+    return ___operator_multiply__Fi_ii_(__number1__i, __number2__i);
+}
+int ___operator_add__Fi_ii_(int , int );
+int ___operator_assign__Fi_Pii_(int *, int );
+struct accumulator
+{
+    int __total__i;
+};
+static inline struct accumulator ___operator_assign__F12saccumulator_P12saccumulator12saccumulator_(struct accumulator *___dst__P12saccumulator, struct accumulator ___src__12saccumulator){
+    ___operator_assign__Fi_Pii_((&(*___dst__P12saccumulator).__total__i), ___src__12saccumulator.__total__i);
+    return ___src__12saccumulator;
+}
+char ___operator_call__Fc_12saccumulatorcc_(struct accumulator __a__12saccumulator, char __number1__c, char __number2__c);
+void __f__F__(void){
+    char __a__c;
+    char __b__c;
+    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
+    ___operator_call__Fi_ii_(((int )__a__c), ((int )__b__c));
+    ___operator_add__Fi_ii_(((int )__a__c), ((int )__b__c));
+    struct accumulator ___operator_add__12saccumulator;
+    ___operator_call__Fc_12saccumulatorcc_(___operator_add__12saccumulator, __a__c, __b__c);
+}
Index: src/Tests/Output-r/Quad.txt
===================================================================
--- src/Tests/Output-r/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1851 @@
+nameExpr is ?*?
+decl is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+decl is ?*?: pointer to function
+  with parameters
+    instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: ?*?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?*?: pointer to function
+    with parameters
+      instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+nameExpr is t
+decl is t: instance of type T (not function type) 
+newExpr is Variable Expression: t: instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t: instance of type T (not function type) 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?*?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+formal type is instance of type T (not function type) 
+actual type is lvalue instance of type T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: t: instance of type T (not function type) 
+--- results are
+        lvalue instance of type T (not function type) 
+
+converting lvalue instance of type T (not function type) 
+ to instance of type T (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+actuals are:
+                  Variable Expression: t: instance of type T (not function type) 
+
+                  Variable Expression: t: instance of type T (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?*?: pointer to function
+      with parameters
+        instance of type T (not function type) 
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: t: instance of type T (not function type) 
+
+      Variable Expression: t: instance of type T (not function type) 
+
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+(types:
+    instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is square
+decl is square: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is square: pointer to function
+  with parameters
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+newExpr is Variable Expression: square: pointer to function
+    with parameters
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+              ?*?: pointer to function
+                  with parameters
+                    instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          t: instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: square: pointer to function
+    with parameters
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is square
+decl is square: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+decl is square: pointer to function
+  with parameters
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+newExpr is Variable Expression: square: pointer to function
+    with parameters
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+              ?*?: pointer to function
+                  with parameters
+                    instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+        function
+        with parameters
+          t: instance of type _1_T (not function type) 
+        returning 
+          instance of type _1_T (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: square: pointer to function
+    with parameters
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is u
+decl is u: instance of type U (not function type) 
+newExpr is Variable Expression: u: instance of type U (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: u: instance of type U (not function type) 
+(types:
+    lvalue instance of type U (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: square: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  ?*?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              t: instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+                      ?*?: pointer to function
+                          with parameters
+                            instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                function
+                with parameters
+                  t: instance of type _1_T (not function type) 
+                returning 
+                  instance of type _1_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is lvalue instance of type U (not function type) 
+need assertions:
+?*?: pointer to function
+          with parameters
+            instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?*?: pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type U (not function type) 
+actual type is lvalue instance of type U (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: u: instance of type U (not function type) 
+--- results are
+        lvalue instance of type U (not function type) 
+
+converting lvalue instance of type U (not function type) 
+ to instance of type U (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type U (not function type) 
+actuals are:
+                  Variable Expression: u: instance of type U (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: square: pointer to function
+      with parameters
+        instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: u: instance of type U (not function type) 
+
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: square: pointer to function
+      with parameters
+        instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Variable Expression: u: instance of type U (not function type) 
+
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: square: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                  ?*?: pointer to function
+                      with parameters
+                        instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              t: instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+                      ?*?: pointer to function
+                          with parameters
+                            instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  t: instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is instance of type U (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)?*?: pointer to function
+          with parameters
+            instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: pointer to function
+  with parameters
+    pointer to instance of type U (not function type) 
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to instance of type U (not function type) 
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+success!
+satisfying assertion 12 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 23 ?=?: pointer to function
+  with parameters
+    pointer to instance of type U (not function type) 
+    instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+
+inferRecursive: assertion is ?*?: pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type U (not function type) 
+actual type is instance of type U (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+        to arguments
+                      Variable Expression: u: instance of type U (not function type) 
+
+--- results are
+        instance of type U (not function type) 
+
+converting instance of type U (not function type) 
+ to instance of type U (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type U (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: square: pointer to function
+                with parameters
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+          to arguments
+                          Variable Expression: u: instance of type U (not function type) 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: square: pointer to function
+      with parameters
+        instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: square: pointer to function
+          with parameters
+            instance of type U (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+    to arguments
+              Variable Expression: u: instance of type U (not function type) 
+
+
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: square: pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+          Application of
+        Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: u: instance of type U (not function type) 
+
+
+
+to:
+  instance of type U (not function type) 
+(types:
+    instance of type U (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is quad
+decl is quad: forall
+    U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type U (not function type) 
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+        square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+
+  function
+  with parameters
+    u: instance of type U (not function type) 
+  returning 
+    instance of type U (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: square: pointer to function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+          Application of
+        Variable Expression: square: pointer to function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+      to arguments
+                  Variable Expression: u: instance of type U (not function type) 
+
+
+
+to:
+  instance of type U (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: quad: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: quad: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+    pointer to forall
+          _0_U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_U (not function type) 
+                    instance of type _0_U (not function type) 
+                  returning 
+                    instance of type _0_U (not function type) 
+
+              square: pointer to function
+                  with parameters
+                    instance of type _0_U (not function type) 
+                  returning 
+                    instance of type _0_U (not function type) 
+
+
+        function
+        with parameters
+          u: instance of type _0_U (not function type) 
+        returning 
+          instance of type _0_U (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 7 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: quad: forall
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+                  square: pointer to function
+                      with parameters
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              u: instance of type U (not function type) 
+            returning 
+              instance of type U (not function type) 
+
+(types:
+            pointer to forall
+                  _0_U: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_U (not function type) 
+                            instance of type _0_U (not function type) 
+                          returning 
+                            instance of type _0_U (not function type) 
+
+                      square: pointer to function
+                          with parameters
+                            instance of type _0_U (not function type) 
+                          returning 
+                            instance of type _0_U (not function type) 
+
+
+                function
+                with parameters
+                  u: instance of type _0_U (not function type) 
+                returning 
+                  instance of type _0_U (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_U (not function type) 
+actual type is signed int 
+need assertions:
+square: pointer to function
+          with parameters
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_U (not function type) 
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is square: pointer to function
+  with parameters
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+inferRecursive: candidate is square: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+unifying pointer to function
+  with parameters
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+ with pointer to forall
+    _1_T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _1_T (not function type) 
+              instance of type _1_T (not function type) 
+            returning 
+              instance of type _1_T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type _1_T (not function type) 
+              instance of type _1_T (not function type) 
+            returning 
+              instance of type _1_T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+success!
+satisfying assertion 26 square: pointer to function
+  with parameters
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+ with declaration 19 square: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        ?*?: pointer to function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    t: instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Cast of:
+  Application of
+    Variable Expression: ?*?: pointer to function
+        with parameters
+          instance of type T (not function type) 
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+  to arguments
+          Variable Expression: t: instance of type T (not function type) 
+
+          Variable Expression: t: instance of type T (not function type) 
+
+
+to:
+  instance of type T (not function type) 
+with environment:
+  Types:
+  Non-types:
+
+
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 23 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+recursing with new set:
+?*?: pointer to function
+          with parameters
+            instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)inferRecursive: assertion is ?*?: pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 16 ?*?: pointer to function
+  with parameters
+    instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 8 ?*?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 12 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+constant expression 7 signed int --- results are
+        signed int 
+
+converting signed int 
+ to instance of type _0_U (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_U (not function type) 
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+
+converting pointer to forall
+            _1_T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type _1_T (not function type) 
+                      instance of type _1_T (not function type) 
+                    returning 
+                      instance of type _1_T (not function type) 
+
+                ?*?: pointer to function
+                    with parameters
+                      instance of type _1_T (not function type) 
+                      instance of type _1_T (not function type) 
+                    returning 
+                      instance of type _1_T (not function type) 
+
+
+          function
+          with parameters
+            t: instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+ to pointer to function
+          with parameters
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        u: instance of type _0_U (not function type) 
+actuals are:
+        constant expression 7 signed int 
+bindings are:
+        ( _0_U _1_T ) -> signed int  (no widening)
+cost of conversion is:( 0, 20, 0 )
+alternatives before prune:
+Cost ( 0, 20, 0 ): Application of
+  Variable Expression: quad: forall
+        U: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type U (not function type) 
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+            square: pointer to function
+                with parameters
+                  instance of type U (not function type) 
+                returning 
+                  instance of type U (not function type) 
+
+
+      function
+      with parameters
+        u: instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+to arguments
+  constant expression 7 signed int 
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+  square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    instance of type _0_U (not function type) 
+)
+Environment:   ( _0_U _1_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: quad: forall
+          U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type U (not function type) 
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+              square: pointer to function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+
+        function
+        with parameters
+          u: instance of type U (not function type) 
+        returning 
+          instance of type U (not function type) 
+
+  to arguments
+    constant expression 7 signed int 
+  with inferred parameters:
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+    ?*?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+    ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+    square: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+            ?*?: pointer to function
+                with parameters
+                  instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        t: instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _0_U _1_T ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_assign__Fi_Pii_(int *, int );
+int ___operator_multiply__Fi_ii_(int , int );
+void __square__A1_0_0____operator_assign__PFt0_Pt0t0____operator_multiply__PFt0_t0t0__Ft0_t0_(void (*_adapterF2tT_2tT2tT_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void (*___operator_multiply__PF2tT_2tT2tT_)(), void *_retparm, void *__t__2tT){
+    _adapterF2tT_2tT2tT_(___operator_multiply__PF2tT_2tT2tT_, _retparm, __t__2tT, __t__2tT);
+    return ;
+}
+void __quad__A1_0_0____operator_assign__PFt0_Pt0t0___square__PFt0_t0__Ft0_t0_(void (*_adapterF2tU_2tU_)(void (*)(), void *, void *), void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), long unsigned int U, void (*___operator_assign__PF2tU_P2tU2tU_)(), void (*__square__PF2tU_2tU_)(), void *_retparm, void *__u__2tU){
+    void *_temp0;
+    (_temp0=__builtin_alloca(U));
+    _adapterF2tU_2tU_(__square__PF2tU_2tU_, _retparm, (_adapterF2tU_2tU_(__square__PF2tU_2tU_, _temp0, __u__2tU) , _temp0));
+    return ;
+}
+void __f__F__(){
+    int _thunk0(int _p0){
+        int _temp1;
+        void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+            ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+        }
+        void _adapterFi_ii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+            ((*((int *)_ret))=((int (*)(int , int ))_adaptee)((*((int *)_p0)), (*((int *)_p1))));
+        }
+        return (__square__A1_0_0____operator_assign__PFt0_Pt0t0____operator_multiply__PFt0_t0t0__Ft0_t0_(_adapterFi_ii_, _adapterFi_Pii_, sizeof(int ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())___operator_multiply__Fi_ii_), (&_temp1), (&_p0)) , _temp1);
+    }
+    int _temp2;
+    int _temp3;
+    (_temp3=7);
+    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
+    }
+    void _adapterFi_i_(void (*_adaptee)(), void *_ret, void *_p0){
+        ((*((int *)_ret))=((int (*)(int ))_adaptee)((*((int *)_p0))));
+    }
+    (__quad__A1_0_0____operator_assign__PFt0_Pt0t0___square__PFt0_t0__Ft0_t0_(_adapterFi_i_, _adapterFi_Pii_, sizeof(int ), ((void (*)())___operator_assign__Fi_Pii_), ((void (*)())(&_thunk0)), (&_temp2), (&_temp3)) , _temp2);
+}
Index: src/Tests/Output-r/Rank2.txt
===================================================================
--- src/Tests/Output-r/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3600 @@
+nameExpr is g
+decl is g: function
+  with parameters
+    p: pointer to forall
+          U: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type U (not function type) 
+                    instance of type U (not function type) 
+                  returning 
+                    instance of type U (not function type) 
+
+
+        function
+        with parameters
+          instance of type U (not function type) 
+        returning 
+          nothing 
+
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      p: pointer to forall
+            U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type U (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+
+          function
+          with parameters
+            instance of type U (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      p: pointer to forall
+            U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type U (not function type) 
+                      instance of type U (not function type) 
+                    returning 
+                      instance of type U (not function type) 
+
+
+          function
+          with parameters
+            instance of type U (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          p: pointer to forall
+                _0_U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type _0_U (not function type) 
+                          instance of type _0_U (not function type) 
+                        returning 
+                          instance of type _0_U (not function type) 
+
+
+              function
+              with parameters
+                instance of type _0_U (not function type) 
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      nothing 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              p: pointer to forall
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  p: pointer to forall
+                        _0_U: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type _0_U (not function type) 
+                                  instance of type _0_U (not function type) 
+                                returning 
+                                  instance of type _0_U (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type _0_U (not function type) 
+                      returning 
+                        nothing 
+
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to forall
+    _0_U: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_U (not function type) 
+              instance of type _0_U (not function type) 
+            returning 
+              instance of type _0_U (not function type) 
+
+
+  function
+  with parameters
+    instance of type _0_U (not function type) 
+  returning 
+    nothing 
+
+actual type is pointer to forall
+    _1_T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _1_T (not function type) 
+              instance of type _1_T (not function type) 
+            returning 
+              instance of type _1_T (not function type) 
+
+
+  function
+  with parameters
+    instance of type _1_T (not function type) 
+  returning 
+    nothing 
+
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to forall
+    _2_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _2_DT (not function type) 
+    pointer to instance of type _2_DT (not function type) 
+  returning 
+    pointer to instance of type _2_DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+inferRecursive: candidate is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+success!
+satisfying assertion 12 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 18 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_U (not function type) 
+    instance of type _0_U (not function type) 
+  returning 
+    instance of type _0_U (not function type) 
+
+actual expression:
+        Variable Expression: f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+--- results are
+        pointer to forall
+              _1_T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type _1_T (not function type) 
+                        instance of type _1_T (not function type) 
+                      returning 
+                        instance of type _1_T (not function type) 
+
+
+            function
+            with parameters
+              instance of type _1_T (not function type) 
+            returning 
+              nothing 
+
+
+converting pointer to forall
+            _1_T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type _1_T (not function type) 
+                      instance of type _1_T (not function type) 
+                    returning 
+                      instance of type _1_T (not function type) 
+
+
+          function
+          with parameters
+            instance of type _1_T (not function type) 
+          returning 
+            nothing 
+
+ to pointer to forall
+            _0_U: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type _0_U (not function type) 
+                      instance of type _0_U (not function type) 
+                    returning 
+                      instance of type _0_U (not function type) 
+
+
+          function
+          with parameters
+            instance of type _0_U (not function type) 
+          returning 
+            nothing 
+
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to instance of type _0_U (not function type) 
+            instance of type _0_U (not function type) 
+          returning 
+            instance of type _0_U (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        p: pointer to forall
+              _0_U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type _0_U (not function type) 
+                        instance of type _0_U (not function type) 
+                      returning 
+                        instance of type _0_U (not function type) 
+
+
+            function
+            with parameters
+              instance of type _0_U (not function type) 
+            returning 
+              nothing 
+
+actuals are:
+                  Variable Expression: f: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                nothing 
+
+
+bindings are:
+        ( _1_T ) -> instance of type _0_U (not function type)  (no widening)
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        p: pointer to forall
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+      returning 
+        nothing 
+
+to arguments
+      Variable Expression: f: forall
+          T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type T (not function type) 
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+
+        function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          nothing 
+
+
+with inferred parameters:
+  ?=?: pointer to function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+(types:
+)
+Environment:   ( _1_T ) -> instance of type _0_U (not function type)  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          p: pointer to forall
+                U: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type U (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type U (not function type) 
+
+
+              function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                nothing 
+
+        returning 
+          nothing 
+
+  to arguments
+          Variable Expression: f: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            nothing 
+
+
+  with inferred parameters:
+    ?=?: pointer to function
+      with parameters
+        pointer to instance of type U (not function type) 
+        instance of type U (not function type) 
+      returning 
+        instance of type U (not function type) 
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _1_T ) -> instance of type _0_U (not function type)  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is h
+decl is h: function
+  with parameters
+    null: pointer to signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: h: function
+    with parameters
+      null: pointer to signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: h: function
+    with parameters
+      null: pointer to signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          null: pointer to signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is id
+decl is id: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _0_T (not function type) 
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is id
+decl is id: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _1_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _1_T (not function type) 
+                    instance of type _1_T (not function type) 
+                  returning 
+                    instance of type _1_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _1_T (not function type) 
+        returning 
+          instance of type _1_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is id
+decl is id: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+newExpr is Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: id: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _2_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _2_T (not function type) 
+                    instance of type _2_T (not function type) 
+                  returning 
+                    instance of type _2_T (not function type) 
+
+
+        function
+        with parameters
+          instance of type _2_T (not function type) 
+        returning 
+          instance of type _2_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is 0
+decl is 0: forall
+    T: incomplete type
+  pointer to instance of type T (not function type) 
+newExpr is Variable Expression: 0: forall
+      T: incomplete type
+    pointer to instance of type T (not function type) 
+
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: forall
+      T: incomplete type
+    pointer to instance of type T (not function type) 
+(types:
+    forall
+          _3_T: incomplete type
+        lvalue pointer to instance of type _3_T (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: 0: forall
+      T: incomplete type
+    pointer to instance of type T (not function type) 
+(types:
+    forall
+          _3_T: incomplete type
+        lvalue pointer to instance of type _3_T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _2_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _2_T (not function type) 
+                            instance of type _2_T (not function type) 
+                          returning 
+                            instance of type _2_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _2_T (not function type) 
+                returning 
+                  instance of type _2_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _2_T (not function type) 
+actual type is lvalue signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_T (not function type) 
+            instance of type _2_T (not function type) 
+          returning 
+            instance of type _2_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with pointer to forall
+    _4_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _4_DT (not function type) 
+    pointer to instance of type _4_DT (not function type) 
+  returning 
+    pointer to instance of type _4_DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+formal type is instance of type _2_T (not function type) 
+actual type is forall
+    _3_T: incomplete type
+  lvalue pointer to instance of type _3_T (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _2_T (not function type) 
+            instance of type _2_T (not function type) 
+          returning 
+            instance of type _2_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with pointer to forall
+    _5_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _5_DT (not function type) 
+    pointer to instance of type _5_DT (not function type) 
+  returning 
+    pointer to instance of type _5_DT (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with declaration 8 ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _2_T (not function type) 
+    instance of type _2_T (not function type) 
+  returning 
+    instance of type _2_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to instance of type _2_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_T (not function type) 
+            instance of type _2_T (not function type) 
+          returning 
+            instance of type _2_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _2_T (not function type) 
+actuals are:
+                  Variable Expression: 0: signed int 
+
+bindings are:
+        ( _2_T ) -> signed int 
+cost of conversion is:( 0, 4, 0 )
+actual expression:
+        Variable Expression: 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+--- results are
+        forall
+              _3_T: incomplete type
+            lvalue pointer to instance of type _3_T (not function type) 
+
+converting forall
+            _3_T: incomplete type
+          lvalue pointer to instance of type _3_T (not function type) 
+ to instance of type _2_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to forall
+            _5_DT: incomplete type
+          function
+          with parameters
+            pointer to pointer to instance of type _5_DT (not function type) 
+            pointer to instance of type _5_DT (not function type) 
+          returning 
+            pointer to instance of type _5_DT (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _2_T (not function type) 
+            instance of type _2_T (not function type) 
+          returning 
+            instance of type _2_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _2_T (not function type) 
+actuals are:
+                  Variable Expression: 0: forall
+                T: incomplete type
+              pointer to instance of type T (not function type) 
+
+bindings are:
+        ( _2_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+        ( _3_T _5_DT ) (no widening)
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: 0: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    instance of type _2_T (not function type) 
+)
+Environment:   ( _2_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: 0: forall
+          T: incomplete type
+        pointer to instance of type T (not function type) 
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    instance of type _2_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT ) (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: 0: signed int 
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    signed int 
+)
+Environment:   ( _2_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Variable Expression: 0: forall
+          T: incomplete type
+        pointer to instance of type T (not function type) 
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    forall
+          _3_T: incomplete type
+        pointer to instance of type _3_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT ) (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _1_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _1_T (not function type) 
+                            instance of type _1_T (not function type) 
+                          returning 
+                            instance of type _1_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _1_T (not function type) 
+                returning 
+                  instance of type _1_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _1_T (not function type) 
+actual type is signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to forall
+    _6_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _6_DT (not function type) 
+    pointer to instance of type _6_DT (not function type) 
+  returning 
+    pointer to instance of type _6_DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+formal type is instance of type _1_T (not function type) 
+actual type is forall
+    _3_T: incomplete type
+  pointer to instance of type _3_T (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to forall
+    _7_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _7_DT (not function type) 
+    pointer to instance of type _7_DT (not function type) 
+  returning 
+    pointer to instance of type _7_DT (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with declaration 8 ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _1_T (not function type) 
+    instance of type _1_T (not function type) 
+  returning 
+    instance of type _1_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Variable Expression: 0: signed int 
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+
+bindings are:
+        ( _2_T ) -> signed int  (no widening)
+        ( _1_T ) -> signed int 
+cost of conversion is:( 0, 4, 0 )
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: forall
+                  T: incomplete type
+                pointer to instance of type T (not function type) 
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+--- results are
+        forall
+              _3_T: incomplete type
+            pointer to instance of type _3_T (not function type) 
+
+converting forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+ to instance of type _1_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to forall
+            _7_DT: incomplete type
+          function
+          with parameters
+            pointer to pointer to instance of type _7_DT (not function type) 
+            pointer to instance of type _7_DT (not function type) 
+          returning 
+            pointer to instance of type _7_DT (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _1_T (not function type) 
+            instance of type _1_T (not function type) 
+          returning 
+            instance of type _1_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _1_T (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Variable Expression: 0: forall
+                    T: incomplete type
+                  pointer to instance of type T (not function type) 
+
+          with inferred parameters:
+            ?=?: forall
+                DT: incomplete type
+              function
+              with parameters
+                pointer to pointer to instance of type DT (not function type) 
+                pointer to instance of type DT (not function type) 
+              returning 
+                pointer to instance of type DT (not function type) 
+
+
+bindings are:
+        ( _2_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _1_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+        ( _3_T _5_DT _7_DT ) (no widening)
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: 0: signed int 
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    instance of type _1_T (not function type) 
+)
+Environment:   ( _2_T ) -> signed int  (no widening)
+  ( _1_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    instance of type _1_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT _7_DT ) (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: 0: signed int 
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    signed int 
+)
+Environment:   ( _2_T ) -> signed int  (no widening)
+  ( _1_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Variable Expression: 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    forall
+          _3_T: incomplete type
+        pointer to instance of type _3_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT _7_DT ) (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type _0_T (not function type) 
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type _0_T (not function type) 
+actual type is signed int 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to forall
+    _8_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _8_DT (not function type) 
+    pointer to instance of type _8_DT (not function type) 
+  returning 
+    pointer to instance of type _8_DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 4 ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+formal type is instance of type _0_T (not function type) 
+actual type is forall
+    _3_T: incomplete type
+  pointer to instance of type _3_T (not function type) 
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to forall
+    _9_DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type _9_DT (not function type) 
+    pointer to instance of type _9_DT (not function type) 
+  returning 
+    pointer to instance of type _9_DT (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 8 ?=?: forall
+    DT: incomplete type
+  function
+  with parameters
+    pointer to pointer to instance of type DT (not function type) 
+    pointer to instance of type DT (not function type) 
+  returning 
+    pointer to instance of type DT (not function type) 
+
+inferRecursive: candidate is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Application of
+              Variable Expression: id: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+            to arguments
+                              Variable Expression: 0: signed int 
+
+            with inferred parameters:
+              ?=?: function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to signed int 
+            signed int 
+          returning 
+            signed int 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Application of
+                Variable Expression: id: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+              to arguments
+                                  Variable Expression: 0: signed int 
+
+              with inferred parameters:
+                ?=?: function
+                  with parameters
+                    pointer to signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+
+          with inferred parameters:
+            ?=?: function
+              with parameters
+                pointer to signed int 
+                signed int 
+              returning 
+                signed int 
+
+
+bindings are:
+        ( _2_T ) -> signed int  (no widening)
+        ( _1_T ) -> signed int  (no widening)
+        ( _0_T ) -> signed int 
+cost of conversion is:( 0, 4, 0 )
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Application of
+              Variable Expression: id: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+            to arguments
+                              Variable Expression: 0: forall
+                      T: incomplete type
+                    pointer to instance of type T (not function type) 
+
+            with inferred parameters:
+              ?=?: forall
+                  DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type DT (not function type) 
+                  pointer to instance of type DT (not function type) 
+                returning 
+                  pointer to instance of type DT (not function type) 
+
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+--- results are
+        forall
+              _3_T: incomplete type
+            pointer to instance of type _3_T (not function type) 
+
+converting forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+ to instance of type _0_T (not function type) 
+cost is( 0, 0, 0 )
+
+converting pointer to forall
+            _9_DT: incomplete type
+          function
+          with parameters
+            pointer to pointer to instance of type _9_DT (not function type) 
+            pointer to instance of type _9_DT (not function type) 
+          returning 
+            pointer to instance of type _9_DT (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type _0_T (not function type) 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Application of
+                Variable Expression: id: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+              to arguments
+                                  Variable Expression: 0: forall
+                        T: incomplete type
+                      pointer to instance of type T (not function type) 
+
+              with inferred parameters:
+                ?=?: forall
+                    DT: incomplete type
+                  function
+                  with parameters
+                    pointer to pointer to instance of type DT (not function type) 
+                    pointer to instance of type DT (not function type) 
+                  returning 
+                    pointer to instance of type DT (not function type) 
+
+
+          with inferred parameters:
+            ?=?: forall
+                DT: incomplete type
+              function
+              with parameters
+                pointer to pointer to instance of type DT (not function type) 
+                pointer to instance of type DT (not function type) 
+              returning 
+                pointer to instance of type DT (not function type) 
+
+
+bindings are:
+        ( _2_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _1_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _0_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+        ( _3_T _5_DT _7_DT _9_DT ) (no widening)
+cost of conversion is:( 0, 4, 0 )
+alternatives before prune:
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _2_T ) -> signed int  (no widening)
+  ( _1_T ) -> signed int  (no widening)
+  ( _0_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: forall
+                  T: incomplete type
+                pointer to instance of type T (not function type) 
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _0_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT _7_DT _9_DT ) (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: signed int 
+
+        with inferred parameters:
+          ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+
+    with inferred parameters:
+      ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    signed int 
+)
+Environment:   ( _2_T ) -> signed int  (no widening)
+  ( _1_T ) -> signed int  (no widening)
+  ( _0_T ) -> signed int 
+
+
+Cost ( 0, 4, 0 ): Application of
+  Variable Expression: id: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        instance of type T (not function type) 
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Variable Expression: 0: forall
+                  T: incomplete type
+                pointer to instance of type T (not function type) 
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+with inferred parameters:
+  ?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+(types:
+    forall
+          _3_T: incomplete type
+        pointer to instance of type _3_T (not function type) 
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _0_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type) 
+  ( _3_T _5_DT _7_DT _9_DT ) (no widening)
+
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: h: function
+            with parameters
+              null: pointer to signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  null: pointer to signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is signed int 
+formal type is pointer to signed int 
+actual type is forall
+    _3_T: incomplete type
+  pointer to instance of type _3_T (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+T
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Application of
+              Variable Expression: id: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+            to arguments
+                              Application of
+                  Variable Expression: id: forall
+                        T: type
+                          with assertions
+                            ?=?: pointer to function
+                                with parameters
+                                  pointer to instance of type T (not function type) 
+                                  instance of type T (not function type) 
+                                returning 
+                                  instance of type T (not function type) 
+
+
+                      function
+                      with parameters
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+                to arguments
+                                      Variable Expression: 0: forall
+                          T: incomplete type
+                        pointer to instance of type T (not function type) 
+
+                with inferred parameters:
+                  ?=?: forall
+                      DT: incomplete type
+                    function
+                    with parameters
+                      pointer to pointer to instance of type DT (not function type) 
+                      pointer to instance of type DT (not function type) 
+                    returning 
+                      pointer to instance of type DT (not function type) 
+
+
+            with inferred parameters:
+              ?=?: forall
+                  DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type DT (not function type) 
+                  pointer to instance of type DT (not function type) 
+                returning 
+                  pointer to instance of type DT (not function type) 
+
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+--- results are
+        forall
+              _3_T: incomplete type
+            pointer to instance of type _3_T (not function type) 
+
+converting forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type) 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        null: pointer to signed int 
+actuals are:
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Application of
+                Variable Expression: id: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+              to arguments
+                                  Application of
+                    Variable Expression: id: forall
+                          T: type
+                            with assertions
+                              ?=?: pointer to function
+                                  with parameters
+                                    pointer to instance of type T (not function type) 
+                                    instance of type T (not function type) 
+                                  returning 
+                                    instance of type T (not function type) 
+
+
+                        function
+                        with parameters
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+                  to arguments
+                                          Variable Expression: 0: forall
+                            T: incomplete type
+                          pointer to instance of type T (not function type) 
+
+                  with inferred parameters:
+                    ?=?: forall
+                        DT: incomplete type
+                      function
+                      with parameters
+                        pointer to pointer to instance of type DT (not function type) 
+                        pointer to instance of type DT (not function type) 
+                      returning 
+                        pointer to instance of type DT (not function type) 
+
+
+              with inferred parameters:
+                ?=?: forall
+                    DT: incomplete type
+                  function
+                  with parameters
+                    pointer to pointer to instance of type DT (not function type) 
+                    pointer to instance of type DT (not function type) 
+                  returning 
+                    pointer to instance of type DT (not function type) 
+
+
+          with inferred parameters:
+            ?=?: forall
+                DT: incomplete type
+              function
+              with parameters
+                pointer to pointer to instance of type DT (not function type) 
+                pointer to instance of type DT (not function type) 
+              returning 
+                pointer to instance of type DT (not function type) 
+
+
+bindings are:
+        ( _2_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _1_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _0_T ) -> forall
+            _3_T: incomplete type
+          pointer to instance of type _3_T (not function type)  (no widening)
+        ( _3_T _5_DT _7_DT _9_DT ) -> signed int  (no widening)
+cost of conversion is:( 0, 1, 0 )
+alternatives before prune:
+Cost ( 0, 1, 0 ): Application of
+  Variable Expression: h: function
+      with parameters
+        null: pointer to signed int 
+      returning 
+        nothing 
+
+to arguments
+      Application of
+      Variable Expression: id: forall
+            T: type
+              with assertions
+                ?=?: pointer to function
+                    with parameters
+                      pointer to instance of type T (not function type) 
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+
+          function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+    to arguments
+              Application of
+          Variable Expression: id: forall
+                T: type
+                  with assertions
+                    ?=?: pointer to function
+                        with parameters
+                          pointer to instance of type T (not function type) 
+                          instance of type T (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+
+              function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+        to arguments
+                      Application of
+              Variable Expression: id: forall
+                    T: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type T (not function type) 
+                              instance of type T (not function type) 
+                            returning 
+                              instance of type T (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type T (not function type) 
+                  returning 
+                    instance of type T (not function type) 
+
+            to arguments
+                              Variable Expression: 0: forall
+                      T: incomplete type
+                    pointer to instance of type T (not function type) 
+
+            with inferred parameters:
+              ?=?: forall
+                  DT: incomplete type
+                function
+                with parameters
+                  pointer to pointer to instance of type DT (not function type) 
+                  pointer to instance of type DT (not function type) 
+                returning 
+                  pointer to instance of type DT (not function type) 
+
+
+        with inferred parameters:
+          ?=?: forall
+              DT: incomplete type
+            function
+            with parameters
+              pointer to pointer to instance of type DT (not function type) 
+              pointer to instance of type DT (not function type) 
+            returning 
+              pointer to instance of type DT (not function type) 
+
+
+    with inferred parameters:
+      ?=?: forall
+          DT: incomplete type
+        function
+        with parameters
+          pointer to pointer to instance of type DT (not function type) 
+          pointer to instance of type DT (not function type) 
+        returning 
+          pointer to instance of type DT (not function type) 
+
+
+(types:
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _0_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _3_T _5_DT _7_DT _9_DT ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: h: function
+        with parameters
+          null: pointer to signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Application of
+        Variable Expression: id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+      to arguments
+                  Application of
+            Variable Expression: id: forall
+                  T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type T (not function type) 
+                            instance of type T (not function type) 
+                          returning 
+                            instance of type T (not function type) 
+
+
+                function
+                with parameters
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+          to arguments
+                          Application of
+                Variable Expression: id: forall
+                      T: type
+                        with assertions
+                          ?=?: pointer to function
+                              with parameters
+                                pointer to instance of type T (not function type) 
+                                instance of type T (not function type) 
+                              returning 
+                                instance of type T (not function type) 
+
+
+                    function
+                    with parameters
+                      instance of type T (not function type) 
+                    returning 
+                      instance of type T (not function type) 
+
+              to arguments
+                                  Variable Expression: 0: forall
+                        T: incomplete type
+                      pointer to instance of type T (not function type) 
+
+              with inferred parameters:
+                ?=?: forall
+                    DT: incomplete type
+                  function
+                  with parameters
+                    pointer to pointer to instance of type DT (not function type) 
+                    pointer to instance of type DT (not function type) 
+                  returning 
+                    pointer to instance of type DT (not function type) 
+
+
+          with inferred parameters:
+            ?=?: forall
+                DT: incomplete type
+              function
+              with parameters
+                pointer to pointer to instance of type DT (not function type) 
+                pointer to instance of type DT (not function type) 
+              returning 
+                pointer to instance of type DT (not function type) 
+
+
+      with inferred parameters:
+        ?=?: forall
+            DT: incomplete type
+          function
+          with parameters
+            pointer to pointer to instance of type DT (not function type) 
+            pointer to instance of type DT (not function type) 
+          returning 
+            pointer to instance of type DT (not function type) 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment:   ( _2_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _1_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _0_T ) -> forall
+      _3_T: incomplete type
+    pointer to instance of type _3_T (not function type)  (no widening)
+  ( _3_T _5_DT _7_DT _9_DT ) -> signed int  (no widening)
+
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_assign__Fi_Pii_(int *, int );
+void *___operator_assign__A0_1_0__FPd0_PPd0Pd0_(void **, void *);
+void __a__F__(){
+    void __f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *);
+    void __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(void (*__p__PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0_)(void (*_adapterF2tU_P2tU2tU_)(void (*)(), void *, void *, void *), long unsigned int U, void (*___operator_assign__PF2tU_P2tU2tU_)(), void *));
+    __g__F_PA1_0_0____operator_assign__PFt0_Pt0t0__F_t0__(__f__A1_0_0____operator_assign__PFt0_Pt0t0__F_t0_);
+}
+void __g__F__(){
+    void __h__F_Pi_(int *__null__Pi);
+    void __id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), void *, void *);
+    void *___constant_zero__A0_1_0__Pd0;
+    int ___constant_zero__i;
+    void *_thunk0(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_thunk1(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_thunk2(void **_p0, void *_p1){
+        return ___operator_assign__A0_1_0__FPd0_PPd0Pd0_(_p0, _p1);
+    }
+    void *_temp0;
+    void _adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1){
+        ((*((_3_T **)_ret))=((void *(*)(void **, void *))_adaptee)(_p0, (*((_3_T **)_p1))));
+    }
+    void *_temp1;
+    void *_temp2;
+    __h__F_Pi_((__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk2)), (&_temp2), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk1)), (&_temp1), (&(__id__A1_0_0____operator_assign__PFt0_Pt0t0__Ft0_t0_(_adapterFA0_1_0__Pd0_PA0_1_0__Pd1A0_1_0__Pd2_, sizeof(_3_T *), ((void (*)())(&_thunk0)), (&_temp0), (&___constant_zero__A0_1_0__Pd0)) , _temp0))) , _temp1))) , _temp2));
+}
Index: src/Tests/Output-r/Scope.txt
===================================================================
--- src/Tests/Output-r/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3706 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    a: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  a: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: double 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type u (not function type) 
+(types:
+    lvalue pointer to instance of type u (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is y
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is u
+nameExpr is t
+decl is t: function
+  with parameters
+    instance of type u (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type u (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is z
+decl is z: double 
+newExpr is Variable Expression: z: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+nameExpr is t
+decl is t: function
+  with parameters
+    instance of type u (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t: function
+    with parameters
+      instance of type u (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          instance of type u (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is u
+nameExpr is u
+decl is u: pointer to function
+  with parameters
+    instance of type t (not function type) 
+  returning 
+    instance of type t (not function type) 
+
+newExpr is Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_t
+decl is the_t: instance of type t (not function type) 
+newExpr is Variable Expression: the_t: instance of type t (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+)
+        Environment: 
+formal type is instance of type t (not function type) 
+actual type is lvalue instance of type t (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: the_t: instance of type t (not function type) 
+--- results are
+        lvalue instance of type t (not function type) 
+
+converting lvalue instance of type t (not function type) 
+ to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type t (not function type) 
+actuals are:
+                  Variable Expression: the_t: instance of type t (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: u: pointer to function
+      with parameters
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Variable Expression: the_t: instance of type t (not function type) 
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: u: pointer to function
+        with parameters
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+  to arguments
+          Variable Expression: the_t: instance of type t (not function type) 
+
+
+to:
+  instance of type t (not function type) 
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+decl is ?=?: pointer to function
+  with parameters
+    pointer to instance of type t (not function type) 
+    instance of type t (not function type) 
+  returning 
+    instance of type t (not function type) 
+
+newExpr is Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type t (not function type) 
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: pointer to function
+    with parameters
+      pointer to instance of type t (not function type) 
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          pointer to instance of type t (not function type) 
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+nameExpr is y
+decl is y: instance of type t (not function type) with initializer 
+Simple Initializer:   Cast of:
+    Application of
+      Variable Expression: u: pointer to function
+          with parameters
+            instance of type t (not function type) 
+          returning 
+            instance of type t (not function type) 
+
+    to arguments
+              Variable Expression: the_t: instance of type t (not function type) 
+
+
+  to:
+    instance of type t (not function type) 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: y: instance of type t (not function type) 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: instance of type t (not function type) 
+(types:
+    pointer to instance of type t (not function type) 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: y: instance of type t (not function type) 
+(types:
+    pointer to instance of type t (not function type) 
+)
+Environment: 
+
+nameExpr is u
+decl is u: pointer to function
+  with parameters
+    instance of type t (not function type) 
+  returning 
+    instance of type t (not function type) 
+
+newExpr is Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: u: pointer to function
+    with parameters
+      instance of type t (not function type) 
+    returning 
+      instance of type t (not function type) 
+
+(types:
+    lvalue pointer to function
+        with parameters
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is the_t
+decl is the_t: instance of type t (not function type) 
+newExpr is Variable Expression: the_t: instance of type t (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: the_t: instance of type t (not function type) 
+(types:
+    lvalue instance of type t (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+)
+        Environment: 
+formal type is instance of type t (not function type) 
+actual type is lvalue instance of type t (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: the_t: instance of type t (not function type) 
+--- results are
+        lvalue instance of type t (not function type) 
+
+converting lvalue instance of type t (not function type) 
+ to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        instance of type t (not function type) 
+actuals are:
+                  Variable Expression: the_t: instance of type t (not function type) 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: u: pointer to function
+      with parameters
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Variable Expression: the_t: instance of type t (not function type) 
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: u: pointer to function
+      with parameters
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Variable Expression: the_t: instance of type t (not function type) 
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to instance of type t (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to instance of type t (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type t (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: pointer to function
+            with parameters
+              pointer to instance of type t (not function type) 
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+(types:
+            lvalue pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type t (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type t (not function type) 
+actual type is pointer to instance of type t (not function type) 
+formal type is instance of type t (not function type) 
+actual type is instance of type t (not function type) 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Variable Expression: y: instance of type t (not function type) 
+--- results are
+        pointer to instance of type t (not function type) 
+
+converting pointer to instance of type t (not function type) 
+ to pointer to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+actual expression:
+        Application of
+          Variable Expression: u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+        to arguments
+                      Variable Expression: the_t: instance of type t (not function type) 
+
+--- results are
+        instance of type t (not function type) 
+
+converting instance of type t (not function type) 
+ to instance of type t (not function type) 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to instance of type t (not function type) 
+        instance of type t (not function type) 
+actuals are:
+                  Address of:
+            Variable Expression: y: instance of type t (not function type) 
+
+                  Application of
+            Variable Expression: u: pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+          to arguments
+                          Variable Expression: the_t: instance of type t (not function type) 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: pointer to function
+      with parameters
+        pointer to instance of type t (not function type) 
+        instance of type t (not function type) 
+      returning 
+        instance of type t (not function type) 
+
+to arguments
+      Address of:
+      Variable Expression: y: instance of type t (not function type) 
+
+      Application of
+      Variable Expression: u: pointer to function
+          with parameters
+            instance of type t (not function type) 
+          returning 
+            instance of type t (not function type) 
+
+    to arguments
+              Variable Expression: the_t: instance of type t (not function type) 
+
+
+(types:
+    instance of type t (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: pointer to function
+        with parameters
+          pointer to instance of type t (not function type) 
+          instance of type t (not function type) 
+        returning 
+          instance of type t (not function type) 
+
+  to arguments
+          Address of:
+        Variable Expression: y: instance of type t (not function type) 
+
+          Application of
+        Variable Expression: u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+      to arguments
+                  Variable Expression: the_t: instance of type t (not function type) 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is x
+decl is x: char 
+newExpr is Variable Expression: x: char 
+
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: x: char 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is z
+decl is z: char with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: x: char 
+
+  to:
+    char 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: z: char 
+
+decl is z: double 
+newExpr is Variable Expression: z: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: z: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: z: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+nameExpr is x
+decl is x: char 
+newExpr is Variable Expression: x: char 
+
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: y: char 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is x
+decl is x: char 
+newExpr is Variable Expression: x: char 
+
+decl is x: signed int 
+newExpr is Variable Expression: x: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: x: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to signed int 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: y: char 
+
+to:
+  char 
+(types:
+    char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                a: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type u (not function type) 
+    _src: instance of type u (not function type) 
+  returning 
+    instance of type u (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type x (not function type) 
+    _src: instance of type x (not function type) 
+  returning 
+    instance of type x (not function type) 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type u (not function type) 
+          _src: instance of type u (not function type) 
+        returning 
+          instance of type u (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type x (not function type) 
+      _src: instance of type x (not function type) 
+    returning 
+      instance of type x (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type x (not function type) 
+          _src: instance of type x (not function type) 
+        returning 
+          instance of type x (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+nameExpr is q
+decl is q: forall
+    t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type t (not function type) 
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type t (not function type) 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+      Declaration of y: instance of type t (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Application of
+              Variable Expression: u: pointer to function
+                  with parameters
+                    instance of type t (not function type) 
+                  returning 
+                    instance of type t (not function type) 
+
+            to arguments
+                              Variable Expression: the_t: instance of type t (not function type) 
+
+
+          to:
+            instance of type t (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: y: instance of type t (not function type) 
+
+                          Application of
+                Variable Expression: u: pointer to function
+                    with parameters
+                      instance of type t (not function type) 
+                    returning 
+                      instance of type t (not function type) 
+
+              to arguments
+                                  Variable Expression: the_t: instance of type t (not function type) 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+
+newExpr is Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+
+decl is q: char with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: y: char 
+
+  to:
+    char 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: q: char 
+
+decl is q: double 
+newExpr is Variable Expression: q: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+(types:
+    forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        lvalue function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: forall
+        t: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+            u: pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+
+      function
+      with parameters
+        the_t: instance of type t (not function type) 
+      returning 
+        double 
+
+(types:
+    pointer to forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: double 
+(types:
+    pointer to double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: char 
+(types:
+    pointer to char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: q: forall
+        t: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+            u: pointer to function
+                with parameters
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+
+      function
+      with parameters
+        the_t: instance of type t (not function type) 
+      returning 
+        double 
+
+(types:
+    pointer to forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+nameExpr is y
+decl is y: char 
+newExpr is Variable Expression: y: char 
+
+decl is y: double 
+newExpr is Variable Expression: y: double 
+
+decl is y: signed int 
+newExpr is Variable Expression: y: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: y: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type x (not function type) 
+                  _src: instance of type x (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type x (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type u (not function type) 
+              _src: instance of type u (not function type) 
+            returning 
+              instance of type u (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type u (not function type) 
+                  _src: instance of type u (not function type) 
+                returning 
+                  instance of type u (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to double 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to char 
+formal type is pointer to instance of type u (not function type) 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to double 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to char 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to forall
+    _0_t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type _0_t (not function type) 
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type _0_t (not function type) 
+            returning 
+              instance of type _0_t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type _0_t (not function type) 
+  returning 
+    double 
+
+nameExpr is some_func
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is q
+decl is q: forall
+    t: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type t (not function type) 
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+        u: pointer to function
+            with parameters
+              instance of type t (not function type) 
+            returning 
+              instance of type t (not function type) 
+
+
+  function
+  with parameters
+    the_t: instance of type t (not function type) 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+      Declaration of y: instance of type t (not function type) with initializer 
+        Simple Initializer:           Cast of:
+            Application of
+              Variable Expression: u: pointer to function
+                  with parameters
+                    instance of type t (not function type) 
+                  returning 
+                    instance of type t (not function type) 
+
+            to arguments
+                              Variable Expression: the_t: instance of type t (not function type) 
+
+
+          to:
+            instance of type t (not function type) 
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: pointer to function
+                with parameters
+                  pointer to instance of type t (not function type) 
+                  instance of type t (not function type) 
+                returning 
+                  instance of type t (not function type) 
+
+          to arguments
+                          Address of:
+                Variable Expression: y: instance of type t (not function type) 
+
+                          Application of
+                Variable Expression: u: pointer to function
+                    with parameters
+                      instance of type t (not function type) 
+                    returning 
+                      instance of type t (not function type) 
+
+              to arguments
+                                  Variable Expression: the_t: instance of type t (not function type) 
+
+
+          with environment:
+            Types:
+            Non-types:
+
+
+newExpr is Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+
+decl is q: function
+    accepting unspecified arguments
+  returning 
+    double 
+  with parameter names
+    i
+  with parameter declarations
+    i: signed int 
+  with body 
+    CompoundStmt
+              Switch on condition: Variable Expression: i: signed int 
+with environment:
+  Types:
+  Non-types:
+
+            Case Name: 0
+
+                Return Statement, returning: Name: q
+
+            Default 
+                Return Statement, returning: Name: i
+
+
+
+newExpr is Variable Expression: q: function
+      accepting unspecified arguments
+    returning 
+      double 
+
+
+decl is q: char with initializer 
+Simple Initializer:   Cast of:
+    Variable Expression: y: char 
+
+  to:
+    char 
+  with environment:
+    Types:
+    Non-types:
+
+newExpr is Variable Expression: q: char 
+
+decl is q: double 
+newExpr is Variable Expression: q: double 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+
+(types:
+    pointer to forall
+          _0_t: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_t (not function type) 
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+              u: pointer to function
+                  with parameters
+                    instance of type _0_t (not function type) 
+                  returning 
+                    instance of type _0_t (not function type) 
+
+
+        function
+        with parameters
+          the_t: instance of type _0_t (not function type) 
+        returning 
+          double 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: function
+      accepting unspecified arguments
+    returning 
+      double 
+
+(types:
+    pointer to function
+          accepting unspecified arguments
+        returning 
+          double 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: char 
+(types:
+    lvalue char 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: q: double 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: q: double 
+
+to:
+  double 
+(types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 6 ): Cast of:
+  Variable Expression: i: signed int 
+
+to:
+  double 
+(types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        a: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      a: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        b: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      b: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+to:
+  pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: y
+
+to:
+  instance of type u (not function type) 
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Name: u
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: z
+    Name: x
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+    Name: y
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: q
+    Name: y
+
+Error: No reasonable alternatives for expression Name: some_func
+
Index: src/Tests/Output-r/ScopeErrors.txt
===================================================================
--- src/Tests/Output-r/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Output-r/ShortCircuit.txt
===================================================================
--- src/Tests/Output-r/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3202 @@
+nameExpr is g
+decl is g: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 10 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 10 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is c
+decl is c: float 
+newExpr is Variable Expression: c: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+alternatives before prune:
+Cost ( 0, 0, 0 ): Conditional expression on: 
+  Cast of:
+    Application of
+      Variable Expression: ?!=?: function
+          with parameters
+            signed int 
+            signed int 
+          returning 
+            signed int 
+
+    to arguments
+              Variable Expression: a: signed int 
+
+              Variable Expression: 0: signed int 
+
+
+  to:
+    signed int 
+First alternative:
+  Variable Expression: b: signed int 
+Second alternative:
+  Variable Expression: c: float 
+
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Conditional expression on: 
+  Cast of:
+    Application of
+      Variable Expression: ?!=?: function
+          with parameters
+            signed int 
+            signed int 
+          returning 
+            signed int 
+
+    to arguments
+              Variable Expression: a: signed int 
+
+              Variable Expression: 0: signed int 
+
+
+  to:
+    signed int 
+First alternative:
+  Variable Expression: b: signed int 
+Second alternative:
+  Variable Expression: c: float 
+
+(types:
+    lvalue float 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue float 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Conditional expression on: 
+          Cast of:
+            Application of
+              Variable Expression: ?!=?: function
+                  with parameters
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Variable Expression: a: signed int 
+
+                              Variable Expression: 0: signed int 
+
+
+          to:
+            signed int 
+        First alternative:
+          Variable Expression: b: signed int 
+        Second alternative:
+          Variable Expression: c: float 
+
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Cast of:
+            Conditional expression on: 
+              Cast of:
+                Application of
+                  Variable Expression: ?!=?: function
+                      with parameters
+                        signed int 
+                        signed int 
+                      returning 
+                        signed int 
+
+                to arguments
+                                      Variable Expression: a: signed int 
+
+                                      Variable Expression: 0: signed int 
+
+
+              to:
+                signed int 
+            First alternative:
+              Variable Expression: b: signed int 
+            Second alternative:
+              Variable Expression: c: float 
+
+
+          to:
+            signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Conditional expression on: 
+          Cast of:
+            Application of
+              Variable Expression: ?!=?: function
+                  with parameters
+                    signed int 
+                    signed int 
+                  returning 
+                    signed int 
+
+            to arguments
+                              Variable Expression: a: signed int 
+
+                              Variable Expression: 0: signed int 
+
+
+          to:
+            signed int 
+        First alternative:
+          Variable Expression: b: signed int 
+        Second alternative:
+          Variable Expression: c: float 
+
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Conditional expression on: 
+            Cast of:
+              Application of
+                Variable Expression: ?!=?: function
+                    with parameters
+                      signed int 
+                      signed int 
+                    returning 
+                      signed int 
+
+              to arguments
+                                  Variable Expression: a: signed int 
+
+                                  Variable Expression: 0: signed int 
+
+
+            to:
+              signed int 
+          First alternative:
+            Variable Expression: b: signed int 
+          Second alternative:
+            Variable Expression: c: float 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Conditional expression on: 
+        Cast of:
+          Application of
+            Variable Expression: ?!=?: function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Variable Expression: a: signed int 
+
+                          Variable Expression: 0: signed int 
+
+
+        to:
+          signed int 
+      First alternative:
+        Variable Expression: b: signed int 
+      Second alternative:
+        Variable Expression: c: float 
+
+
+    to:
+      signed int 
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Conditional expression on: 
+      Cast of:
+        Application of
+          Variable Expression: ?!=?: function
+              with parameters
+                signed int 
+                signed int 
+              returning 
+                signed int 
+
+        to arguments
+                      Variable Expression: a: signed int 
+
+                      Variable Expression: 0: signed int 
+
+
+      to:
+        signed int 
+    First alternative:
+      Variable Expression: b: signed int 
+    Second alternative:
+      Variable Expression: c: float 
+
+
+(types:
+)
+Environment: 
+
+cost ( 0, 0, 0 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+  to arguments
+          Conditional expression on: 
+        Cast of:
+          Application of
+            Variable Expression: ?!=?: function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+          to arguments
+                          Variable Expression: a: signed int 
+
+                          Variable Expression: 0: signed int 
+
+
+        to:
+          signed int 
+      First alternative:
+        Variable Expression: b: signed int 
+      Second alternative:
+        Variable Expression: c: float 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 10 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 10 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is c
+decl is c: float 
+newExpr is Variable Expression: c: float 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: float 
+(types:
+    lvalue float 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue float 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue float 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: c: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to signed int 
+cost is( 1, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Cast of:
+            Variable Expression: c: float 
+
+          to:
+            signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+actual expression:
+        Variable Expression: c: float 
+--- results are
+        lvalue float 
+
+converting lvalue float 
+ to float 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Variable Expression: c: float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: c: float 
+
+    to:
+      signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: c: float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+cost ( 0, 0, 5 ) beats ( 1, 0, 0 )
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: g: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+    to:
+      float 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Short-circuited operation (and) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: c: float 
+
+          Cast of:
+        Variable Expression: 0: signed int 
+
+      to:
+        float 
+
+
+to:
+  signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    float 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+
+decl is g: function
+  with parameters
+    signed int 
+  returning 
+    nothing 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: a: signed int 
+
+          to:
+            float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 10 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 10 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: a: signed int 
+
+    to:
+      float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    float 
+    float 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          float 
+          float 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              float 
+              float 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                  float 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is float 
+actual type is lvalue signed int 
+formal type is float 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: b: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Variable Expression: b: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+        float 
+actuals are:
+                  Cast of:
+            Variable Expression: b: signed int 
+
+          to:
+            float 
+
+                  Cast of:
+            Variable Expression: 0: signed int 
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 10 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: b: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 10 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        float 
+        float 
+      returning 
+        signed int 
+
+to arguments
+      Cast of:
+      Variable Expression: b: signed int 
+
+    to:
+      float 
+
+      Cast of:
+      Variable Expression: 0: signed int 
+
+    to:
+      float 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              float 
+            returning 
+              nothing 
+
+(types:
+            pointer to function
+                with parameters
+                  float 
+                returning 
+                  nothing 
+
+)
+        Environment: 
+formal type is float 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+                  Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+actual expression:
+        Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+--- results are
+        signed int 
+
+converting signed int 
+ to float 
+cost is( 0, 0, 5 )
+Case +++++++++++++
+formals are:
+        float 
+actuals are:
+                  Cast of:
+            Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+          to:
+            float 
+
+bindings are:
+cost of conversion is:( 0, 0, 5 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+      returning 
+        nothing 
+
+to arguments
+      Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+(types:
+)
+Environment: 
+
+Cost ( 0, 0, 5 ): Application of
+  Variable Expression: g: function
+      with parameters
+        float 
+      returning 
+        nothing 
+
+to arguments
+      Cast of:
+      Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+    to:
+      float 
+
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+        returning 
+          nothing 
+
+  to arguments
+          Short-circuited operation (or) on: Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+ and Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: b: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_notequal__Fi_ii_(int , int );
+int ___operator_notequal__Fi_ff_(float , float );
+int ___constant_zero__i;
+void __g__F_f_(float );
+void __g__F_i_(int );
+void __f__F_i_(int __a__i){
+    int __b__i;
+    float __c__f;
+    __g__F_f_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) ? __b__i : __c__f));
+    __g__F_i_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) && ((int )___operator_notequal__Fi_ff_(__c__f, ((float )___constant_zero__i)))));
+    __g__F_i_((((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i)) || ((int )___operator_notequal__Fi_ii_(__b__i, ___constant_zero__i))));
+}
Index: src/Tests/Output-r/Statement.txt
===================================================================
--- src/Tests/Output-r/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1039 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                b: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: function
+  with parameters
+    pointer to signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    b: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  b: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              pointer to signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  pointer to signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is pointer to signed int 
+actual type is pointer to signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            b: signed int 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct __anonymous0 
+--- results are
+        pointer to signed int 
+
+converting pointer to signed int 
+ to pointer to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          b: signed int 
+        from aggregate: 
+          Variable Expression: _src: instance of struct __anonymous0 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        pointer to signed int 
+        signed int 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              b: signed int 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct __anonymous0 
+
+                  Member Expression, with field: 
+            b: signed int 
+          from aggregate: 
+            Variable Expression: _src: instance of struct __anonymous0 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: function
+      with parameters
+        pointer to signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+
+      Member Expression, with field: 
+      b: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: function
+        with parameters
+          pointer to signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          b: signed int 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct __anonymous0 
+
+          Member Expression, with field: 
+        b: signed int 
+      from aggregate: 
+        Variable Expression: _src: instance of struct __anonymous0 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: instance of struct __anonymous0 
+newExpr is Variable Expression: a: instance of struct __anonymous0 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+__anonymous0
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+__anonymous0
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue instance of struct __anonymous0 
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: instance of struct __anonymous0 
+newExpr is Variable Expression: a: instance of struct __anonymous0 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue instance of struct __anonymous0 
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: pointer to signed int 
+newExpr is Variable Expression: b: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: pointer to signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+decl is ?!=?: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is a
+decl is a: instance of struct __anonymous0 
+newExpr is Variable Expression: a: instance of struct __anonymous0 
+
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: a: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+nameExpr is 0
+decl is 0: signed int 
+newExpr is Variable Expression: 0: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: 0: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?!=?: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+formal type is signed int 
+actual type is lvalue instance of struct __anonymous0 
+actual expression:
+        Variable Expression: a: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: 0: signed int 
+--- results are
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: a: signed int 
+
+                  Variable Expression: 0: signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?!=?: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: a: signed int 
+
+      Variable Expression: 0: signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Application of
+    Variable Expression: ?!=?: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: a: signed int 
+
+          Variable Expression: 0: signed int 
+
+
+to:
+  signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is b
+decl is b: pointer to signed int 
+newExpr is Variable Expression: b: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: b: pointer to signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int ___operator_assign__Fi_Pii_(int *, int );
+int ___operator_notequal__Fi_ii_(int , int );
+int ___constant_zero__i;
+void __f__F__(){
+    int __a__i;
+    struct __anonymous0
+    {
+        int __b__i;
+    };
+    inline struct __anonymous0 ___operator_assign__F13s__anonymous0_P13s__anonymous013s__anonymous0_(struct __anonymous0 *___dst__P13s__anonymous0, struct __anonymous0 ___src__13s__anonymous0){
+        ___operator_assign__Fi_Pii_((&(*___dst__P13s__anonymous0).__b__i), ___src__13s__anonymous0.__b__i);
+        return ___src__13s__anonymous0;
+    }
+    struct __anonymous0 __a__13s__anonymous0;
+    if (((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i))) {
+        while (((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i))) {
+            int *__b__Pi;
+            for (__b__Pi;((int )___operator_notequal__Fi_ii_(__a__i, ___constant_zero__i));__b__Pi) {
+            }
+
+        }        
+
+    }
+
+}
Index: src/Tests/Output-r/StructMember.txt
===================================================================
--- src/Tests/Output-r/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,23906 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m1: signed int with bitfield width constant expression 3 signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m1: signed int with bitfield width constant expression 3 signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m1: signed int with bitfield width constant expression 3 signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m1: signed int with bitfield width constant expression 3 signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m1: signed int with bitfield width constant expression 3 signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m2: signed int with bitfield width constant expression 4 signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m2: signed int with bitfield width constant expression 4 signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m2: signed int with bitfield width constant expression 4 signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m2: signed int with bitfield width constant expression 4 signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m2: signed int with bitfield width constant expression 4 signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m4: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m4: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m4: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m4: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m4: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m5: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m5: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m5: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m5: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m5: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m6: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m6: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m6: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m6: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m6: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m7: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m7: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m7: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m7: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m7: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m8: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m8: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m8: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m8: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m8: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m9: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m9: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m9: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m9: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m9: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m10: pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m10: pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m10: pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m10: pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m10: pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to function
+    accepting unspecified arguments
+  returning 
+    signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m11: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m11: pointer to function
+      with parameters
+        signed int 
+      returning 
+        pointer to signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m11: pointer to function
+      with parameters
+        signed int 
+      returning 
+        pointer to signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m11: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m11: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to function
+  with parameters
+    signed int 
+  returning 
+    pointer to signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m12: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m12: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m12: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m12: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m12: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m13: pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m13: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m13: pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m13: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m13: pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m14: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m14: pointer to function
+      with parameters
+        signed int 
+      returning 
+        pointer to signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    m14: pointer to function
+      with parameters
+        signed int 
+      returning 
+        pointer to signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m14: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  m14: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to function
+  with parameters
+    signed int 
+  returning 
+    pointer to signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to function
+        accepting unspecified arguments
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to function
+      accepting unspecified arguments
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to function
+    accepting unspecified arguments
+  returning 
+    signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to pointer to function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    pointer to pointer to function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to pointer to pointer to function
+  with parameters
+    signed int 
+  returning 
+    signed int 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S 
+    _src: instance of struct S 
+  returning 
+    instance of struct S 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m1: signed int with bitfield width constant expression 3 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m2: signed int with bitfield width constant expression 4 signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m4: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m5: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m6: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m7: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m8: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m9: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m10: pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m11: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m12: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m13: pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                m14: pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    pointer to signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                pointer to pointer to function
+                  with parameters
+                    signed int 
+                  returning 
+                    signed int 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S 
+              Member Expression, with field: 
+                signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S 
+          _src: instance of struct S 
+        returning 
+          instance of struct S 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct S 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S 
+              _src: instance of struct S 
+            returning 
+              instance of struct S 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S 
+                  _src: instance of struct S 
+                returning 
+                  instance of struct S 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct S 
+(types:
+    lvalue instance of struct S 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct S 
+
+to:
+  instance of struct S 
+(types:
+    instance of struct S 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 5 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 5 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is __builtin_memcpy
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union U 
+(types:
+    lvalue instance of union U 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of union U 
+
+to:
+  instance of union U 
+(types:
+    instance of union U 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m1: signed int with bitfield width constant expression 3 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m1: signed int with bitfield width constant expression 3 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m2: signed int with bitfield width constant expression 4 signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m2: signed int with bitfield width constant expression 4 signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m4: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m4: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m5: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m5: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m6: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m6: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m7: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m7: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m8: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m8: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m9: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m9: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m10: pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m11: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m12: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m12: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m13: pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m13: pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      m14: pointer to function
+        with parameters
+          signed int 
+        returning 
+          pointer to signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to function
+          accepting unspecified arguments
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      pointer to pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S 
+    Member Expression, with field: 
+      signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S 
+
+Error: No reasonable alternatives for expression Name: __builtin_memcpy
+
Index: src/Tests/Output-r/Subrange.txt
===================================================================
--- src/Tests/Output-r/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,846 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type subrange (not function type) 
+    _src: instance of type subrange (not function type) 
+  returning 
+    instance of type subrange (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+    to:
+      pointer to instance of type base_t (not function type) 
+    Cast of:
+      Variable Expression: _src: instance of type subrange (not function type) 
+
+    to:
+      instance of type base_t (not function type) 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type subrange (not function type) 
+      _src: instance of type subrange (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type subrange (not function type) 
+      _src: instance of type subrange (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type subrange (not function type) 
+          _src: instance of type subrange (not function type) 
+        returning 
+          instance of type subrange (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+(types:
+    lvalue pointer to instance of type subrange (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is low
+nameExpr is high
+nameExpr is lbound
+decl is lbound: forall
+    T: type
+      with assertions
+        ?=?: pointer to function
+            with parameters
+              pointer to instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+
+  function
+  with parameters
+    v: instance of type subrange (not function type) 
+      with parameters
+        instance of type T (not function type) 
+                  Name: low
+
+                  Name: high
+
+
+  returning 
+    instance of type T (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Name: low
+
+
+
+newExpr is Variable Expression: lbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: lbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    pointer to forall
+          _0_T: type
+            with assertions
+              ?=?: pointer to function
+                  with parameters
+                    pointer to instance of type _0_T (not function type) 
+                    instance of type _0_T (not function type) 
+                  returning 
+                    instance of type _0_T (not function type) 
+
+
+        function
+        with parameters
+          v: instance of type subrange (not function type) 
+            with parameters
+              instance of type _0_T (not function type) 
+                              Name: low
+
+                              Name: high
+
+
+        returning 
+          instance of type _0_T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is day_of_month
+decl is day_of_month: instance of type subrange (not function type) 
+with parameters
+  unsigned int 
+      Name: 1
+
+  constant expression 31 signed int 
+
+newExpr is Variable Expression: day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+(types:
+    lvalue instance of type subrange (not function type) 
+      with parameters
+        unsigned int 
+                  Name: 1
+
+        constant expression 31 signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+(types:
+    lvalue instance of type subrange (not function type) 
+      with parameters
+        unsigned int 
+                  Name: 1
+
+        constant expression 31 signed int 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: lbound: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              v: instance of type subrange (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+                                      Name: low
+
+                                      Name: high
+
+
+            returning 
+              instance of type T (not function type) 
+
+(types:
+            pointer to forall
+                  _0_T: type
+                    with assertions
+                      ?=?: pointer to function
+                          with parameters
+                            pointer to instance of type _0_T (not function type) 
+                            instance of type _0_T (not function type) 
+                          returning 
+                            instance of type _0_T (not function type) 
+
+
+                function
+                with parameters
+                  v: instance of type subrange (not function type) 
+                    with parameters
+                      instance of type _0_T (not function type) 
+                                              Name: low
+
+                                              Name: high
+
+
+                returning 
+                  instance of type _0_T (not function type) 
+
+)
+        Environment: 
+formal type is instance of type subrange (not function type) 
+with parameters
+  instance of type _0_T (not function type) 
+      Name: low
+
+      Name: high
+
+
+actual type is lvalue instance of type subrange (not function type) 
+with parameters
+  unsigned int 
+      Name: 1
+
+  constant expression 31 signed int 
+
+need assertions:
+?=?: pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+(used)============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+inferRecursive: assertion is ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+
+inferRecursive: candidate is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type subrange (not function type) 
+    _src: instance of type subrange (not function type) 
+  returning 
+    instance of type subrange (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+    to:
+      pointer to instance of type base_t (not function type) 
+    Cast of:
+      Variable Expression: _src: instance of type subrange (not function type) 
+
+    to:
+      instance of type base_t (not function type) 
+
+
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    _dst: pointer to instance of type subrange (not function type) 
+    _src: instance of type subrange (not function type) 
+  returning 
+    instance of type subrange (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 21 ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type subrange (not function type) 
+    _src: instance of type subrange (not function type) 
+  returning 
+    instance of type subrange (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+    to:
+      pointer to instance of type base_t (not function type) 
+    Cast of:
+      Variable Expression: _src: instance of type subrange (not function type) 
+
+    to:
+      instance of type base_t (not function type) 
+
+
+
+inferRecursive: candidate is ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+unifying pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+success!
+satisfying assertion 28 ?=?: pointer to function
+  with parameters
+    pointer to instance of type _0_T (not function type) 
+    instance of type _0_T (not function type) 
+  returning 
+    instance of type _0_T (not function type) 
+ with declaration 35 ?=?: pointer to function
+  with parameters
+    pointer to instance of type T (not function type) 
+    instance of type T (not function type) 
+  returning 
+    instance of type T (not function type) 
+
+actual expression:
+        Variable Expression: day_of_month: instance of type subrange (not function type) 
+          with parameters
+            unsigned int 
+                          Name: 1
+
+            constant expression 31 signed int 
+
+--- results are
+        lvalue instance of type subrange (not function type) 
+          with parameters
+            unsigned int 
+                          Name: 1
+
+            constant expression 31 signed int 
+
+
+converting lvalue instance of type subrange (not function type) 
+        with parameters
+          unsigned int 
+                      Name: 1
+
+          constant expression 31 signed int 
+
+ to instance of type subrange (not function type) 
+        with parameters
+          instance of type _0_T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+cost is( -1, -1, 0 )
+
+converting pointer to function
+          with parameters
+            _dst: pointer to instance of type subrange (not function type) 
+            _src: instance of type subrange (not function type) 
+          returning 
+            instance of type subrange (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        v: instance of type subrange (not function type) 
+          with parameters
+            instance of type _0_T (not function type) 
+                          Name: low
+
+                          Name: high
+
+
+actuals are:
+                  Cast of:
+            Variable Expression: day_of_month: instance of type subrange (not function type) 
+              with parameters
+                unsigned int 
+                                  Name: 1
+
+                constant expression 31 signed int 
+
+
+          to:
+            instance of type subrange (not function type) 
+              with parameters
+                instance of type _0_T (not function type) 
+                                  Name: low
+
+                                  Name: high
+
+
+
+bindings are:
+        ( _0_T ) -> instance of type subrange (not function type)  (no widening)
+cost of conversion is:( -1, 2, 0 )
+actual expression:
+        Variable Expression: day_of_month: instance of type subrange (not function type) 
+          with parameters
+            unsigned int 
+                          Name: 1
+
+            constant expression 31 signed int 
+
+--- results are
+        lvalue instance of type subrange (not function type) 
+          with parameters
+            unsigned int 
+                          Name: 1
+
+            constant expression 31 signed int 
+
+
+converting lvalue instance of type subrange (not function type) 
+        with parameters
+          unsigned int 
+                      Name: 1
+
+          constant expression 31 signed int 
+
+ to instance of type subrange (not function type) 
+        with parameters
+          instance of type _0_T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+cost is( -1, -1, 0 )
+
+converting pointer to function
+          with parameters
+            pointer to instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+ to pointer to function
+          with parameters
+            pointer to instance of type _0_T (not function type) 
+            instance of type _0_T (not function type) 
+          returning 
+            instance of type _0_T (not function type) 
+
+cost of conversion is ( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        v: instance of type subrange (not function type) 
+          with parameters
+            instance of type _0_T (not function type) 
+                          Name: low
+
+                          Name: high
+
+
+actuals are:
+                  Cast of:
+            Variable Expression: day_of_month: instance of type subrange (not function type) 
+              with parameters
+                unsigned int 
+                                  Name: 1
+
+                constant expression 31 signed int 
+
+
+          to:
+            instance of type subrange (not function type) 
+              with parameters
+                instance of type _0_T (not function type) 
+                                  Name: low
+
+                                  Name: high
+
+
+
+bindings are:
+        ( _0_T ) -> instance of type T (not function type)  (no widening)
+cost of conversion is:( -1, 2, 0 )
+alternatives before prune:
+Cost ( -1, 2, 0 ): Application of
+  Variable Expression: lbound: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        v: instance of type subrange (not function type) 
+          with parameters
+            instance of type T (not function type) 
+                          Name: low
+
+                          Name: high
+
+
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Cast of:
+      Variable Expression: day_of_month: instance of type subrange (not function type) 
+        with parameters
+          unsigned int 
+                      Name: 1
+
+          constant expression 31 signed int 
+
+
+    to:
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type _0_T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+
+with inferred parameters:
+  ?=?: function
+    with parameters
+      _dst: pointer to instance of type subrange (not function type) 
+      _src: instance of type subrange (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> instance of type subrange (not function type)  (no widening)
+
+
+Cost ( -1, 2, 0 ): Application of
+  Variable Expression: lbound: forall
+        T: type
+          with assertions
+            ?=?: pointer to function
+                with parameters
+                  pointer to instance of type T (not function type) 
+                  instance of type T (not function type) 
+                returning 
+                  instance of type T (not function type) 
+
+
+      function
+      with parameters
+        v: instance of type subrange (not function type) 
+          with parameters
+            instance of type T (not function type) 
+                          Name: low
+
+                          Name: high
+
+
+      returning 
+        instance of type T (not function type) 
+
+to arguments
+      Cast of:
+      Variable Expression: day_of_month: instance of type subrange (not function type) 
+        with parameters
+          unsigned int 
+                      Name: 1
+
+          constant expression 31 signed int 
+
+
+    to:
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type _0_T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+
+with inferred parameters:
+  ?=?: pointer to function
+    with parameters
+      pointer to instance of type T (not function type) 
+      instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+(types:
+    instance of type _0_T (not function type) 
+)
+Environment:   ( _0_T ) -> instance of type T (not function type)  (no widening)
+
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is ?!=?
+nameExpr is target
+decl is target: pointer to instance of type subrange (not function type) 
+with parameters
+  instance of type T (not function type) 
+      Name: low
+
+      Name: high
+
+
+newExpr is Variable Expression: target: pointer to instance of type subrange (not function type) 
+  with parameters
+    instance of type T (not function type) 
+          Name: low
+
+          Name: high
+
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: target: pointer to instance of type subrange (not function type) 
+  with parameters
+    instance of type T (not function type) 
+          Name: low
+
+          Name: high
+
+
+(types:
+    lvalue pointer to instance of type subrange (not function type) 
+      with parameters
+        instance of type T (not function type) 
+                  Name: low
+
+                  Name: high
+
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?!=?
+nameExpr is target
+decl is target: pointer to instance of type subrange (not function type) 
+with parameters
+  instance of type T (not function type) 
+      Name: t_low
+
+      Name: t_high
+
+
+newExpr is Variable Expression: target: pointer to instance of type subrange (not function type) 
+  with parameters
+    instance of type T (not function type) 
+          Name: t_low
+
+          Name: t_high
+
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: target: pointer to instance of type subrange (not function type) 
+  with parameters
+    instance of type T (not function type) 
+          Name: t_low
+
+          Name: t_high
+
+
+(types:
+    lvalue pointer to instance of type subrange (not function type) 
+      with parameters
+        instance of type T (not function type) 
+                  Name: t_low
+
+                  Name: t_high
+
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+to:
+  pointer to instance of type base_t (not function type) 
+
+Error: No reasonable alternatives for expression Name: low
+
+Error: No reasonable alternatives for expression Name: high
+
+Error: No reasonable alternatives for expression Cast of:
+  Applying untyped: 
+      Name: lbound
+  ...to: 
+      Name: day_of_month
+
+to:
+  unsigned int 
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: target
+
+to:
+  instance of type subrange (not function type) 
+    with parameters
+      instance of type T (not function type) 
+              Name: low
+
+              Name: high
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: target
+
+to:
+  instance of type subrange (not function type) 
+    with parameters
+      instance of type T (not function type) 
+              Name: t_low
+
+              Name: t_high
+
+
+
Index: src/Tests/Output-r/Switch.txt
===================================================================
--- src/Tests/Output-r/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,142 @@
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is ?=?
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is i
+decl is i: signed int 
+newExpr is Variable Expression: i: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: i: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-r/Tuple.txt
===================================================================
--- src/Tests/Output-r/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12836 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct inner 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f2: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f2: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct inner 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f3: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct inner 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f3: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct inner 
+(types:
+    lvalue instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+(types:
+    instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct outer 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f1: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f1: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct outer 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of struct inner 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    lvalue instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of struct inner 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of struct inner 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to instance of struct inner 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of struct inner 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of struct inner 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue instance of struct inner 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to instance of struct inner 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to instance of struct inner 
+formal type is instance of struct inner 
+actual type is lvalue instance of struct inner 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Address of:
+          Member Expression, with field: 
+            i: instance of struct inner 
+          from aggregate: 
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Variable Expression: _dst: pointer to instance of struct outer 
+--- results are
+        pointer to instance of struct inner 
+
+converting pointer to instance of struct inner 
+ to pointer to instance of struct inner 
+cost is( 0, 0, 0 )
+actual expression:
+        Member Expression, with field: 
+          i: instance of struct inner 
+        from aggregate: 
+          Variable Expression: _src: instance of struct outer 
+--- results are
+        lvalue instance of struct inner 
+
+converting lvalue instance of struct inner 
+ to instance of struct inner 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        _dst: pointer to instance of struct inner 
+        _src: instance of struct inner 
+actuals are:
+                  Address of:
+            Member Expression, with field: 
+              i: instance of struct inner 
+            from aggregate: 
+              Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Variable Expression: _dst: pointer to instance of struct outer 
+
+                  Member Expression, with field: 
+            i: instance of struct inner 
+          from aggregate: 
+            Variable Expression: _src: instance of struct outer 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: ?=?: inline static function
+      with parameters
+        _dst: pointer to instance of struct inner 
+        _src: instance of struct inner 
+      returning 
+        instance of struct inner 
+
+to arguments
+      Address of:
+      Member Expression, with field: 
+        i: instance of struct inner 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+
+      Member Expression, with field: 
+      i: instance of struct inner 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+(types:
+    instance of struct inner 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: ?=?: inline static function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+  to arguments
+          Address of:
+        Member Expression, with field: 
+          i: instance of struct inner 
+        from aggregate: 
+          Applying untyped: 
+              Name: *?
+          ...to: 
+              Variable Expression: _dst: pointer to instance of struct outer 
+
+          Member Expression, with field: 
+        i: instance of struct inner 
+      from aggregate: 
+        Variable Expression: _src: instance of struct outer 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct outer 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f4: double 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f4: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    f4: double 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct outer 
+(types:
+    pointer to double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f4: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  f4: double 
+from aggregate: 
+  Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to double 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to double 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+(types:
+    instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: x: short signed int 
+
+(types:
+    lvalue unsigned int 
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: x: short signed int 
+
+(types:
+    pointer to unsigned int 
+    pointer to short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: x: short signed int 
+
+(types:
+    pointer to unsigned int 
+    pointer to short signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+)
+Environment: 
+
+nameExpr is w
+decl is w: signed int 
+newExpr is Variable Expression: w: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: w: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: w: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 23 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 23 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: w: signed int 
+
+  constant expression 23 signed int 
+(types:
+    lvalue signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: w: signed int 
+
+  constant expression 23 signed int 
+(types:
+    lvalue signed int 
+    signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: short signed int 
+(types:
+    pointer to short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: x: short signed int 
+(types:
+    pointer to short signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: w: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: w: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to short signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to short signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+nameExpr is z
+decl is z: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: z: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: z: tuple of types
+          signed int 
+          signed int 
+
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: z: tuple of types
+          signed int 
+          signed int 
+
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is p
+decl is p: short signed int 
+newExpr is Variable Expression: p: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is f
+decl is f: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+nameExpr is z
+decl is z: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: z: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: z: tuple of types
+          signed int 
+          signed int 
+
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: x: short signed int 
+
+          Variable Expression: y: unsigned int 
+
+          Variable Expression: z: tuple of types
+          signed int 
+          signed int 
+
+
+(types:
+    pointer to short signed int 
+    pointer to unsigned int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is p
+decl is p: short signed int 
+newExpr is Variable Expression: p: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: p: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: p: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is f
+decl is f: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 17 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is r
+decl is r: tuple of types
+  signed int 
+  char 
+  long signed int 
+  signed int 
+
+newExpr is Variable Expression: r: tuple of types
+    signed int 
+    char 
+    long signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: r: tuple of types
+    signed int 
+    char 
+    long signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue char 
+    lvalue long signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: r: tuple of types
+      signed int 
+      char 
+      long signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to char 
+    pointer to long signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: r: tuple of types
+      signed int 
+      char 
+      long signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to char 
+    pointer to long signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is x
+decl is x: short signed int 
+newExpr is Variable Expression: x: short signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: x: short signed int 
+(types:
+    lvalue short signed int 
+)
+Environment: 
+
+nameExpr is y
+decl is y: unsigned int 
+newExpr is Variable Expression: y: unsigned int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: y: unsigned int 
+(types:
+    lvalue unsigned int 
+)
+Environment: 
+
+nameExpr is z
+decl is z: tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: z: tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: z: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: x: short signed int 
+
+      Variable Expression: y: unsigned int 
+
+      Variable Expression: z: tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    lvalue short signed int 
+    lvalue unsigned int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is 1
+nameExpr is f
+decl is f: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Tuple:
+          constant expression 3 signed int 
+          constant expression 5 signed int 
+--- results are
+        signed int 
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Tuple:
+            constant expression 3 signed int 
+            constant expression 5 signed int 
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Tuple:
+      constant expression 3 signed int 
+      constant expression 5 signed int 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Tuple:
+        constant expression 3 signed int 
+        constant expression 5 signed int 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Tuple:
+          constant expression 3 signed int 
+          constant expression 5 signed int 
+--- results are
+        signed int 
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+constant expression 3 signed int --- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Tuple:
+            constant expression 3 signed int 
+            constant expression 5 signed int 
+
+        constant expression 3 signed int 
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Tuple:
+      constant expression 3 signed int 
+      constant expression 5 signed int 
+
+  constant expression 3 signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Tuple:
+        constant expression 3 signed int 
+        constant expression 5 signed int 
+
+    constant expression 3 signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is f
+decl is f: function
+  with parameters
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: f: function
+            with parameters
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t1: const volatile tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: t1: const volatile tuple of types
+              signed int 
+              signed int 
+
+
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: f: function
+      with parameters
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: t1: const volatile tuple of types
+        signed int 
+        signed int 
+
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: f: function
+        with parameters
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: t1: const volatile tuple of types
+          signed int 
+          signed int 
+
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is g
+decl is g: function
+  with parameters
+    signed int 
+    signed int 
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: g: function
+            with parameters
+              signed int 
+              signed int 
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                  signed int 
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is lvalue signed int 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+        Variable Expression: t1: const volatile tuple of types
+            signed int 
+            signed int 
+
+--- results are
+        lvalue signed int 
+        lvalue signed int 
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+
+converting lvalue signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+actual expression:
+constant expression 3 signed int --- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+        signed int 
+        signed int 
+actuals are:
+                  Variable Expression: t1: const volatile tuple of types
+              signed int 
+              signed int 
+
+
+        constant expression 3 signed int 
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: g: function
+      with parameters
+        signed int 
+        signed int 
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+      Variable Expression: t1: const volatile tuple of types
+        signed int 
+        signed int 
+
+
+  constant expression 3 signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: g: function
+        with parameters
+          signed int 
+          signed int 
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+          Variable Expression: t1: const volatile tuple of types
+          signed int 
+          signed int 
+
+
+    constant expression 3 signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Tuple:
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+  Tuple:
+    constant expression 3 signed int 
+    constant expression 5 signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: a: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: a: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4.6 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 4.6 double (types:
+    double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 4.6 double 
+(types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 4.6 double 
+(types:
+    double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 5 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: c: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: c: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+      Tuple:
+              Variable Expression: c: signed int 
+
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+          Tuple:
+                  Variable Expression: c: signed int 
+
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+          Tuple:
+                  Variable Expression: c: signed int 
+
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 2 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 2 signed int 
+      Tuple:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: signed int 
+
+
+(types:
+    signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 2 signed int 
+      Tuple:
+              Variable Expression: a: signed int 
+
+              Variable Expression: b: signed int 
+
+
+(types:
+    signed int 
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?!=?
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t2
+decl is t2: static const tuple of types
+  signed int 
+  const signed int 
+
+newExpr is Variable Expression: t2: static const tuple of types
+    signed int 
+    const signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t2: static const tuple of types
+    signed int 
+    const signed int 
+
+(types:
+    lvalue signed int 
+    const lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t2: static const tuple of types
+      signed int 
+      const signed int 
+
+(types:
+    pointer to signed int 
+    pointer to const signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t2: static const tuple of types
+      signed int 
+      const signed int 
+
+(types:
+    pointer to signed int 
+    pointer to const signed int 
+)
+Environment: 
+
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?+=?
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: c: signed int 
+
+          Variable Expression: d: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t2
+decl is t2: static const tuple of types
+  signed int 
+  const signed int 
+
+newExpr is Variable Expression: t2: static const tuple of types
+    signed int 
+    const signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t2: static const tuple of types
+    signed int 
+    const signed int 
+
+(types:
+    lvalue signed int 
+    const lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t2: static const tuple of types
+      signed int 
+      const signed int 
+
+(types:
+    pointer to signed int 
+    pointer to const signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t2: static const tuple of types
+      signed int 
+      const signed int 
+
+(types:
+    pointer to signed int 
+    pointer to const signed int 
+)
+Environment: 
+
+nameExpr is c
+decl is c: signed int 
+newExpr is Variable Expression: c: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: c: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is d
+decl is d: signed int 
+newExpr is Variable Expression: d: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: d: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: c: signed int 
+
+      Variable Expression: d: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to signed int 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is t1
+decl is t1: const volatile tuple of types
+  signed int 
+  signed int 
+
+newExpr is Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: t1: const volatile tuple of types
+      signed int 
+      signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 3 signed int 
+  constant expression 4 signed int 
+(types:
+    signed int 
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is s
+decl is s: instance of struct outer 
+newExpr is Variable Expression: s: instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: s: instance of struct outer 
+(types:
+    pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: s: instance of struct outer 
+(types:
+    pointer to instance of struct outer 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 11 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 11 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 12 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 12 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 13 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 13 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3.14159 double (types:
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3.14159 double (types:
+    double 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 11 signed int 
+  constant expression 12 signed int 
+  constant expression 13 signed int 
+  constant expression 3.14159 double 
+(types:
+    signed int 
+    signed int 
+    signed int 
+    double 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Tuple:
+  constant expression 11 signed int 
+  constant expression 12 signed int 
+  constant expression 13 signed int 
+  constant expression 3.14159 double 
+(types:
+    signed int 
+    signed int 
+    signed int 
+    double 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to instance of struct outer 
+formal type is instance of struct outer 
+actual type is signed int 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to instance of struct outer 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is s
+decl is s: instance of struct outer 
+newExpr is Variable Expression: s: instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: s: instance of struct outer 
+(types:
+    pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: s: instance of struct outer 
+(types:
+    pointer to instance of struct outer 
+)
+Environment: 
+
+nameExpr is h
+decl is h: static function
+  with parameters
+    a: signed int 
+    b: signed int 
+    c: pointer to signed int 
+    d: pointer to char 
+  returning 
+    signed int 
+    pointer to signed int 
+    pointer to signed int 
+    signed int 
+
+newExpr is Variable Expression: h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          a: signed int 
+          b: signed int 
+          c: pointer to signed int 
+          d: pointer to char 
+        returning 
+          signed int 
+          pointer to signed int 
+          pointer to signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is a
+decl is a: signed int 
+newExpr is Variable Expression: a: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: a: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+nameExpr is b
+decl is b: signed int 
+newExpr is Variable Expression: b: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: b: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Tuple:
+      Variable Expression: a: signed int 
+
+      Variable Expression: b: signed int 
+
+(types:
+    lvalue signed int 
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Tuple:
+          Variable Expression: a: signed int 
+
+          Variable Expression: b: signed int 
+
+(types:
+    pointer to signed int 
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is h
+decl is h: static function
+  with parameters
+    a: signed int 
+    b: signed int 
+    c: pointer to signed int 
+    d: pointer to char 
+  returning 
+    signed int 
+    pointer to signed int 
+    pointer to signed int 
+    signed int 
+
+newExpr is Variable Expression: h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          a: signed int 
+          b: signed int 
+          c: pointer to signed int 
+          d: pointer to char 
+        returning 
+          signed int 
+          pointer to signed int 
+          pointer to signed int 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+nameExpr is 0
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is sp
+decl is sp: pointer to instance of struct outer 
+newExpr is Variable Expression: sp: pointer to instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    lvalue pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    pointer to pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    pointer to pointer to instance of struct outer 
+)
+Environment: 
+
+nameExpr is sp
+decl is sp: pointer to instance of struct outer 
+newExpr is Variable Expression: sp: pointer to instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    lvalue pointer to instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: sp: pointer to instance of struct outer 
+(types:
+    lvalue pointer to instance of struct outer 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct outer 
+              _src: instance of struct outer 
+            returning 
+              instance of struct outer 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct outer 
+                  _src: instance of struct outer 
+                returning 
+                  instance of struct outer 
+
+)
+        Environment: 
+formal type is pointer to instance of struct outer 
+actual type is pointer to pointer to instance of struct outer 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct inner 
+              _src: instance of struct inner 
+            returning 
+              instance of struct inner 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+)
+        Environment: 
+formal type is pointer to instance of struct inner 
+actual type is pointer to pointer to instance of struct outer 
+nameExpr is printf
+decl is printf: function
+  with parameters
+    fmt: pointer to char 
+    and a variable number of other arguments
+  returning 
+    rc: signed int 
+
+newExpr is Variable Expression: printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      rc: signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      rc: signed int 
+
+(types:
+    pointer to function
+        with parameters
+          fmt: pointer to char 
+          and a variable number of other arguments
+        returning 
+          rc: signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int (types:
+    pointer to char 
+)
+Environment: 
+
+nameExpr is s
+decl is s: instance of struct outer 
+newExpr is Variable Expression: s: instance of struct outer 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Variable Expression: s: instance of struct outer 
+(types:
+    lvalue instance of struct outer 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: printf: function
+            with parameters
+              fmt: pointer to char 
+              and a variable number of other arguments
+            returning 
+              rc: signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  fmt: pointer to char 
+                  and a variable number of other arguments
+                returning 
+                  rc: signed int 
+
+)
+        Environment: 
+formal type is pointer to char 
+actual type is pointer to char 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int --- results are
+        pointer to char 
+
+converting pointer to char 
+ to pointer to char 
+cost is( 0, 0, 0 )
+actual expression:
+        Variable Expression: s: instance of struct outer 
+--- results are
+        lvalue instance of struct outer 
+Case +++++++++++++
+formals are:
+        fmt: pointer to char 
+actuals are:
+        constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int 
+                  Variable Expression: s: instance of struct outer 
+
+bindings are:
+cost of conversion is:( 1, 0, 0 )
+alternatives before prune:
+Cost ( 1, 0, 0 ): Application of
+  Variable Expression: printf: function
+      with parameters
+        fmt: pointer to char 
+        and a variable number of other arguments
+      returning 
+        rc: signed int 
+
+to arguments
+  constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int 
+      Variable Expression: s: instance of struct outer 
+
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: printf: function
+        with parameters
+          fmt: pointer to char 
+          and a variable number of other arguments
+        returning 
+          rc: signed int 
+
+  to arguments
+    constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int 
+          Variable Expression: s: instance of struct outer 
+
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct inner 
+    _src: instance of struct inner 
+  returning 
+    instance of struct inner 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f2: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct inner 
+              Member Expression, with field: 
+                f3: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct inner 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct inner 
+
+to:
+  instance of struct inner 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct outer 
+    _src: instance of struct outer 
+  returning 
+    instance of struct outer 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f1: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Expression Statement:
+          Application of
+            Variable Expression: ?=?: inline static function
+                with parameters
+                  _dst: pointer to instance of struct inner 
+                  _src: instance of struct inner 
+                returning 
+                  instance of struct inner 
+
+          to arguments
+                          Address of:
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+
+                          Member Expression, with field: 
+                i: instance of struct inner 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+          with environment:
+            Types:
+            Non-types:
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct outer 
+              Member Expression, with field: 
+                f4: double 
+              from aggregate: 
+                Variable Expression: _src: instance of struct outer 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct outer 
+
+to:
+  instance of struct outer 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct inner 
+          _src: instance of struct inner 
+        returning 
+          instance of struct inner 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct outer 
+          _src: instance of struct outer 
+        returning 
+          instance of struct outer 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+nameExpr is rc
+decl is rc: signed int 
+newExpr is Variable Expression: rc: signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: rc: signed int 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: rc: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Variable Expression: rc: signed int 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+nameExpr is 0
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f2: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f2: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f3: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct inner 
+    Member Expression, with field: 
+      f3: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct inner 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f1: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f1: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        f4: double 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct outer 
+    Member Expression, with field: 
+      f4: double 
+    from aggregate: 
+      Variable Expression: _src: instance of struct outer 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: x: short signed int 
+    Variable Expression: w: signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: f
+...to: 
+constant expression 17 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: r
+    Tuple:
+              Name: x
+
+              Name: y
+
+              Name: z
+
+
+Error: No reasonable alternatives for expression Name: 1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: a: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+    Tuple:
+      constant expression 4.6 double 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Variable Expression: c: signed int 
+constant expression 3 signed int 
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: a
+
+                  Name: b
+
+                  Tuple:
+                          Name: c
+
+
+    Tuple:
+      constant expression 2 signed int 
+              Tuple:
+                      Name: a
+
+                      Name: b
+
+
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: a
+
+              Name: b
+
+
+Error: No reasonable alternatives for expression Name: ?+=?
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Tuple:
+                  Name: c
+
+                  Name: d
+
+    Name: t1
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t1
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: t2
+    Tuple:
+              Name: c
+
+              Name: d
+
+
+Error: No reasonable alternatives for expression Address of:
+  Tuple:
+    constant expression 3 signed int 
+    constant expression 4 signed int 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: s
+    Tuple:
+      constant expression 11 signed int 
+      constant expression 12 signed int 
+      constant expression 13 signed int 
+      constant expression 3.14159 double 
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: sp
+    Name: sp
+
+Error: No reasonable alternatives for expression Name: 0
+
Index: src/Tests/Output-r/TypeGenerator.txt
===================================================================
--- src/Tests/Output-r/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3714 @@
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    data: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    data: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of type List1 (not function type) 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    next: pointer to instance of type List1 (not function type) 
+    with parameters
+      instance of type T (not function type) 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    next: pointer to instance of type List1 (not function type) 
+    with parameters
+      instance of type T (not function type) 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of type List1 (not function type) 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of type List1 (not function type) 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to pointer to instance of type List1 (not function type) 
+with parameters
+  instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 2 alternatives before elimination
+there are 2 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+(types:
+    lvalue pointer to instance of type List1 (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 3 alternatives before elimination
+there are 3 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S1 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S1 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct S1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct S1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct S1 
+(types:
+    lvalue instance of struct S1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+(types:
+    instance of struct S1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct S2 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 4 alternatives before elimination
+there are 4 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct S2 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S2 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct S2 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct S2 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct S2 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S2 
+              _src: instance of struct S2 
+            returning 
+              instance of struct S2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S2 
+                  _src: instance of struct S2 
+                returning 
+                  instance of struct S2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S2 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct S2 
+(types:
+    lvalue instance of struct S2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+(types:
+    instance of struct S2 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 5 alternatives before elimination
+there are 5 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    i: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  i: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S2 
+              _src: instance of struct S2 
+            returning 
+              instance of struct S2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S2 
+                  _src: instance of struct S2 
+                returning 
+                  instance of struct S2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S2 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous1 
+(types:
+    lvalue instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+(types:
+    instance of struct __anonymous1 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct node 
+    _src: instance of struct node 
+  returning 
+    instance of struct node 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of struct node 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                next: pointer to instance of struct node 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct node 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct node 
+          _src: instance of struct node 
+        returning 
+          instance of struct node 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    data: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    data: instance of type T (not function type) 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    pointer to instance of type T (not function type) 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct node 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  data: instance of type T (not function type) 
+from aggregate: 
+  Variable Expression: _src: instance of struct node 
+(types:
+    lvalue instance of type T (not function type) 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct node 
+              _src: instance of struct node 
+            returning 
+              instance of struct node 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct node 
+                  _src: instance of struct node 
+                returning 
+                  instance of struct node 
+
+)
+        Environment: 
+formal type is pointer to instance of struct node 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S2 
+              _src: instance of struct S2 
+            returning 
+              instance of struct S2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S2 
+                  _src: instance of struct S2 
+                returning 
+                  instance of struct S2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S2 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to instance of type T (not function type) 
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to instance of type T (not function type) 
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct node 
+    _src: instance of struct node 
+  returning 
+    instance of struct node 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of struct node 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                next: pointer to instance of struct node 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct node 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct node 
+          _src: instance of struct node 
+        returning 
+          instance of struct node 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 6 alternatives before elimination
+there are 6 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    lvalue pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    next: pointer to instance of struct node 
+    with parameters
+      instance of type T (not function type) 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    pointer to pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    next: pointer to instance of struct node 
+    with parameters
+      instance of type T (not function type) 
+
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct node 
+(types:
+    pointer to pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct node 
+(types:
+    lvalue pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  next: pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+from aggregate: 
+  Variable Expression: _src: instance of struct node 
+(types:
+    lvalue pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: function
+            with parameters
+              _dst: pointer to instance of type List1 (not function type) 
+              _src: instance of type List1 (not function type) 
+            returning 
+              instance of type List1 (not function type) 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of type List1 (not function type) 
+                  _src: instance of type List1 (not function type) 
+                returning 
+                  instance of type List1 (not function type) 
+
+)
+        Environment: 
+formal type is pointer to instance of type List1 (not function type) 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct node 
+              _src: instance of struct node 
+            returning 
+              instance of struct node 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct node 
+                  _src: instance of struct node 
+                returning 
+                  instance of struct node 
+
+)
+        Environment: 
+formal type is pointer to instance of struct node 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S2 
+              _src: instance of struct S2 
+            returning 
+              instance of struct S2 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S2 
+                  _src: instance of struct S2 
+                returning 
+                  instance of struct S2 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S2 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct S1 
+              _src: instance of struct S1 
+            returning 
+              instance of struct S1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct S1 
+                  _src: instance of struct S1 
+                returning 
+                  instance of struct S1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct S1 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous1 
+              _src: instance of struct __anonymous1 
+            returning 
+              instance of struct __anonymous1 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous1 
+                  _src: instance of struct __anonymous1 
+                returning 
+                  instance of struct __anonymous1 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous1 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to pointer to instance of struct node 
+with parameters
+  instance of type T (not function type) 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct node 
+(types:
+    lvalue instance of struct node 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct node 
+
+to:
+  instance of struct node 
+(types:
+    instance of struct node 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                next: pointer to instance of type List1 (not function type) 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous1 
+    _src: instance of struct __anonymous1 
+  returning 
+    instance of struct __anonymous1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct __anonymous1 
+
+to:
+  instance of struct __anonymous1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S1 
+    _src: instance of struct S1 
+  returning 
+    instance of struct S1 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S1 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S1 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S1 
+
+to:
+  instance of struct S1 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct S2 
+    _src: instance of struct S2 
+  returning 
+    instance of struct S2 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct S2 
+              Member Expression, with field: 
+                i: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct S2 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct S2 
+
+to:
+  instance of struct S2 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct node 
+    _src: instance of struct node 
+  returning 
+    instance of struct node 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                data: instance of type T (not function type) 
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  next: pointer to instance of struct node 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct node 
+              Member Expression, with field: 
+                next: pointer to instance of struct node 
+                with parameters
+                  instance of type T (not function type) 
+
+              from aggregate: 
+                Variable Expression: _src: instance of struct node 
+
+              Return Statement, returning: Cast of:
+  Variable Expression: _src: instance of struct node 
+
+to:
+  instance of struct node 
+with environment:
+  Types:
+  Non-types:
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List (not function type) 
+    _src: instance of type List (not function type) 
+  returning 
+    instance of type List (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List (not function type) 
+
+    to:
+      pointer to pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+    Cast of:
+      Variable Expression: _src: instance of type List (not function type) 
+
+    to:
+      pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List (not function type) 
+      _src: instance of type List (not function type) 
+    returning 
+      instance of type List (not function type) 
+
+
+decl is ?=?: automatically generated function
+  with parameters
+    _dst: pointer to instance of type List1 (not function type) 
+    _src: instance of type List1 (not function type) 
+  returning 
+    instance of type List1 (not function type) 
+  with body 
+    CompoundStmt
+              Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous1 
+          _src: instance of struct __anonymous1 
+        returning 
+          instance of struct __anonymous1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S1 
+          _src: instance of struct S1 
+        returning 
+          instance of struct S1 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct S2 
+          _src: instance of struct S2 
+        returning 
+          instance of struct S2 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct node 
+          _src: instance of struct node 
+        returning 
+          instance of struct node 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List (not function type) 
+      _src: instance of type List (not function type) 
+    returning 
+      instance of type List (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List (not function type) 
+          _src: instance of type List (not function type) 
+        returning 
+          instance of type List (not function type) 
+
+)
+Environment: 
+
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of type List1 (not function type) 
+          _src: instance of type List1 (not function type) 
+        returning 
+          instance of type List1 (not function type) 
+
+)
+Environment: 
+
+there are 7 alternatives before elimination
+there are 7 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of type List (not function type) 
+(types:
+    lvalue pointer to instance of type List (not function type) 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is my_list
+decl is my_list: instance of type List (not function type) 
+with parameters
+  signed int 
+
+newExpr is Variable Expression: my_list: instance of type List (not function type) 
+  with parameters
+    signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: my_list: instance of type List (not function type) 
+  with parameters
+    signed int 
+
+(types:
+    lvalue instance of type List (not function type) 
+      with parameters
+        signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      next: pointer to instance of type List1 (not function type) 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+to:
+  pointer to pointer to instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct S2 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct S2 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        i: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous1 
+    Member Expression, with field: 
+      i: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous1 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        data: instance of type T (not function type) 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      data: instance of type T (not function type) 
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct node 
+    Member Expression, with field: 
+      next: pointer to instance of struct node 
+      with parameters
+        instance of type T (not function type) 
+
+    from aggregate: 
+      Variable Expression: _src: instance of struct node 
+
+Error: No reasonable alternatives for expression Cast of:
+  Variable Expression: _dst: pointer to instance of type List (not function type) 
+
+to:
+  pointer to pointer to instance of struct node 
+    with parameters
+      instance of type T (not function type) 
+
+
+Error: No reasonable alternatives for expression Cast of:
+  Name: my_list
+
+to:
+  instance of struct node 
+    with parameters
+      signed int 
+
+
Index: src/Tests/Output-r/Typedef.txt
===================================================================
--- src/Tests/Output-r/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,424 @@
+nameExpr is T
+decl is T: function
+  with parameters
+    signed int 
+  returning 
+    signed int 
+
+newExpr is Variable Expression: T: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: T: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+(types:
+    pointer to function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: T: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+(types:
+            pointer to function
+                with parameters
+                  signed int 
+                returning 
+                  signed int 
+
+)
+        Environment: 
+formal type is signed int 
+actual type is signed int 
+need assertions:
+============= original indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+============= new indexer
+===idTable===
+===typeTable===
+===structTable===
+===enumTable===
+===unionTable===
+===contextTable===
+actual expression:
+constant expression 3 signed int --- results are
+        signed int 
+
+converting signed int 
+ to signed int 
+cost is( 0, 0, 0 )
+Case +++++++++++++
+formals are:
+        signed int 
+actuals are:
+        constant expression 3 signed int 
+bindings are:
+cost of conversion is:( 0, 0, 0 )
+alternatives before prune:
+Cost ( 0, 0, 0 ): Application of
+  Variable Expression: T: function
+      with parameters
+        signed int 
+      returning 
+        signed int 
+
+to arguments
+  constant expression 3 signed int 
+(types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Application of
+    Variable Expression: T: function
+        with parameters
+          signed int 
+        returning 
+          signed int 
+
+  to arguments
+    constant expression 3 signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is ?=?
+decl is ?=?: automatically generated inline static function
+  with parameters
+    _dst: pointer to instance of struct __anonymous0 
+    _src: instance of struct __anonymous0 
+  returning 
+    instance of struct __anonymous0 
+  with body 
+    CompoundStmt
+              Expression Statement:
+          Applying untyped: 
+              Name: ?=?
+          ...to: 
+              Address of:
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+              Member Expression, with field: 
+                T: signed int 
+              from aggregate: 
+                Variable Expression: _src: instance of struct __anonymous0 
+
+              Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+newExpr is Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+
+(types:
+    pointer to function
+        with parameters
+          _dst: pointer to instance of struct __anonymous0 
+          _src: instance of struct __anonymous0 
+        returning 
+          instance of struct __anonymous0 
+
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Applying untyped: 
+      Name: *?
+  ...to: 
+      Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Address of:
+  Member Expression, with field: 
+    T: signed int 
+  from aggregate: 
+    Applying untyped: 
+        Name: *?
+    ...to: 
+        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+(types:
+    pointer to signed int 
+)
+Environment: 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+findSubExprs
+Cost ( 0, 0, 0 ): Member Expression, with field: 
+  T: signed int 
+from aggregate: 
+  Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue signed int 
+)
+Environment: 
+
+working on alternative: 
+        Cost ( 0, 0, 0 ):         Variable Expression: ?=?: inline static function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+
+(types:
+            pointer to function
+                with parameters
+                  _dst: pointer to instance of struct __anonymous0 
+                  _src: instance of struct __anonymous0 
+                returning 
+                  instance of struct __anonymous0 
+
+)
+        Environment: 
+formal type is pointer to instance of struct __anonymous0 
+actual type is pointer to signed int 
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 
+(types:
+    lvalue instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): Cast of:
+  Variable Expression: _src: instance of struct __anonymous0 
+
+to:
+  instance of struct __anonymous0 
+(types:
+    instance of struct __anonymous0 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+constant expression 3 signed int 
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Member Expression, with field: 
+        T: signed int 
+      from aggregate: 
+        Applying untyped: 
+            Name: *?
+        ...to: 
+            Variable Expression: _dst: pointer to instance of struct __anonymous0 
+    Member Expression, with field: 
+      T: signed int 
+    from aggregate: 
+      Variable Expression: _src: instance of struct __anonymous0 
+
+Error: No reasonable alternatives for expression Cast of:
+constant expression 3 signed int 
+to:
+  instance of struct __anonymous0 
+
Index: src/Tests/Output-r/TypedefDeclarator.txt
===================================================================
--- src/Tests/Output-r/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,583 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int main(){
+    int __f1__i;
+    int __f2__i;
+    int *__f3__Pi;
+    int **__f4__PPi;
+    int *const *__f5__PCPi;
+    int *const *const __f6__CPCPi;
+    int *__f7__Pi;
+    int **__f8__PPi;
+    int *const *__f9__PCPi;
+    int *const *const __f10__CPCPi;
+    int *__f11__Pi;
+    int **__f12__PPi;
+    int *const *__f13__PCPi;
+    int *const *const __f14__CPCPi;
+    int __f15__A0i[];
+    int __f16__A0i[((long unsigned int )10)];
+    int __f17__A0i[];
+    int __f18__A0i[((long unsigned int )10)];
+    int *__f19__A0Pi[];
+    int *__f20__A0Pi[((long unsigned int )10)];
+    int **__f21__A0PPi[];
+    int **__f22__A0PPi[((long unsigned int )10)];
+    int *const *__f23__A0PCPi[];
+    int *const *__f24__A0PCPi[((long unsigned int )10)];
+    int *const *const __f25__A0CPCPi[];
+    int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+    int *__f27__A0Pi[];
+    int *__f28__A0Pi[((long unsigned int )10)];
+    int **__f29__A0PPi[];
+    int **__f30__A0PPi[((long unsigned int )10)];
+    int *const *__f31__A0PCPi[];
+    int *const *__f32__A0PCPi[((long unsigned int )10)];
+    int *const *const __f33__A0CPCPi[];
+    int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+    int *__f35__A0Pi[];
+    int *__f36__A0Pi[((long unsigned int )10)];
+    int **__f37__A0PPi[];
+    int **__f38__A0PPi[((long unsigned int )10)];
+    int *const *__f39__A0PCPi[];
+    int *const *__f40__A0PCPi[((long unsigned int )10)];
+    int *const *const __f41__A0CPCPi[];
+    int *const *const __f42__A0CPCPi[((long unsigned int )10)];
+    int __f43__A0A0i[][3];
+    int __f44__A0A0i[((long unsigned int )3)][3];
+    int __f45__A0A0i[][3];
+    int __f46__A0A0i[((long unsigned int )3)][3];
+    int __f47__A0A0i[][3];
+    int __f48__A0A0i[((long unsigned int )3)][3];
+    int *__f49__A0A0Pi[][3];
+    int *__f50__A0A0Pi[((long unsigned int )3)][3];
+    int **__f51__A0A0PPi[][3];
+    int **__f52__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f53__A0A0PCPi[][3];
+    int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f55__A0A0CPCPi[][3];
+    int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+    int *__f57__A0A0Pi[][3];
+    int *__f58__A0A0Pi[((long unsigned int )3)][3];
+    int **__f59__A0A0PPi[][3];
+    int **__f60__A0A0PPi[((long unsigned int )3)][3];
+    int *const *__f61__A0A0PCPi[][3];
+    int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+    int *const *const __f63__A0A0CPCPi[][3];
+    int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+    int __f65__Fi_i_(int );
+    int __f66__Fi_i_(int );
+    int *__f67__FPi_i_(int );
+    int **__f68__FPPi_i_(int );
+    int *const *__f69__FPCPi_i_(int );
+    int *const *const __f70__FCPCPi_i_(int );
+    int *__f71__FPi_i_(int );
+    int **__f72__FPPi_i_(int );
+    int *const *__f73__FPCPi_i_(int );
+    int *const *const __f74__FCPCPi_i_(int );
+    int (*__f75__PFi_i_)(int );
+    int (**__f76__PPFi_i_)(int );
+    int (*const *__f77__PCPFi_i_)(int );
+    int (*const *const __f78__CPCPFi_i_)(int );
+    int (*(*__f79__PFPFi___i_)(int ))();
+    int (*(*const __f80__CPFPFi___i_)(int ))();
+    int (*const (*const __f81__CPFCPFi___i_)(int ))();
+}
Index: src/Tests/Output-r/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Output-r/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+int __fred__Fi_iPiPPiPCPiCPCPiPiPPiPCPiCPCPiPiPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPPiPPiPPPiPPPiPPCPiPPCPiPCPCPiPCPCPiPA0iPA0iPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPA0PiPA0PiPA0PPiPA0PPiPA0PCPiPA0PCPiPA0CPCPiPA0CPCPiPFi_i_PFPi_i_PFPPi_i_PFPCPi_i_PFCPCPi_i_PFi_i_PPFi_i_PCPFi_i_CPCPFi_i_PFPFi___i_CPFPFi___i_CPFCPFi___i_CPiCPiPiCPiPFi_CPi_PFi_CPi_PFi_Pi_PFi_CPi_CPPiCPPiPPPiCPPCPiCPCPCPiPFPi_CPi_PFPi_CPi_PFPPi_Pi_PFPCPi_CPi_PFCPCPi_CPi_CPA0iCPA0iPA0iCPA0iPFi_CPA0i_PFi_CPA0i_PFi_PA0i_PFi_CPA0i_CPA0PiCPA0PiPA0PPiCPA0PCPiCPA0CPCPiPFPi_CPA0i_PFPi_CPA0i_PFPPi_PA0i_PFPCPi_CPA0i_PFCPCPi_CPA0i__(int __f1__i, int *__f3__Pi, int **__f4__PPi, int *const *__f5__PCPi, int *const *const __f6__CPCPi, int *__f11__Pi, int **__f12__PPi, int *const *__f13__PCPi, int *const *const __f14__CPCPi, int *__f15__Pi, int __f16__Pi[10], int **__f19__PPi, int *__f20__PPi[10], int ***__f21__PPPi, int **__f22__PPPi[10], int *const **__f23__PPCPi, int *const *__f24__PPCPi[10], int *const *const *__f25__PCPCPi, int *const *const __f26__PCPCPi[10], int **__f35__PPi, int *__f36__PPi[10], int ***__f37__PPPi, int **__f38__PPPi[10], int *const **__f39__PPCPi, int *const *__f40__PPCPi[10], int *const *const *__f41__PCPCPi, int *const *const __f42__PCPCPi[10], int (*__f43__PA0i)[3], int __f44__PA0i[3][3], int *(*__f49__PA0Pi)[3], int *__f50__PA0Pi[3][3], int **(*__f51__PA0PPi)[3], int **__f52__PA0PPi[3][3], int *const *(*__f53__PA0PCPi)[3], int *const *__f54__PA0PCPi[3][3], int *const *const (*__f55__PA0CPCPi)[3], int *const *const __f56__PA0CPCPi[3][3], int *(*__f57__PA0Pi)[3], int *__f58__PA0Pi[3][3], int **(*__f59__PA0PPi)[3], int **__f60__PA0PPi[3][3], int *const *(*__f61__PA0PCPi)[3], int *const *__f62__PA0PCPi[3][3], int *const *const (*__f63__PA0CPCPi)[3], int *const *const __f64__PA0CPCPi[3][3], int (*__f65__PFi_i_)(int ), int *(*__f67__PFPi_i_)(int ), int **(*__f68__PFPPi_i_)(int ), int *const *(*__f69__PFPCPi_i_)(int ), int *const *const (*__f70__PFCPCPi_i_)(int ), int (*__f75__PFi_i_)(int ), int (**__f76__PPFi_i_)(int ), int (*const *__f77__PCPFi_i_)(int ), int (*const *const __f78__CPCPFi_i_)(int ), int (*(*__f79__PFPFi___i_)(int ))(), int (*(*const __f80__CPFPFi___i_)(int ))(), int (*const (*const __f81__CPFCPFi___i_)(int ))(), int __f82__CPi[const *], int __f83__CPi[const 3], int __f84__Pi[static 3], int __f85__CPi[static const 3], int (*)(int [const *]), int (*)(int [const 3]), int (*)(int [static 3]), int (*)(int [static const 3]), int *__f90__CPPi[const *], int *__f91__CPPi[const 3], int **__f92__PPPi[static 3], int *const *__f93__CPPCPi[static const 3], int *const *const __f94__CPCPCPi[static const 3], int *(*)(int [const *]), int *(*)(int [const 3]), int **(*)(int [static 3]), int *const *(*)(int [static const 3]), int *const *const (*)(int [static const 3]), int __f100__CPA0i[const *][3], int __f101__CPA0i[const 3][3], int __f102__PA0i[static 3][3], int __f103__CPA0i[static const 3][3], int (*)(int [const *][3]), int (*)(int [const 3][3]), int (*)(int [static 3][3]), int (*)(int [static const 3][3]), int *__f108__CPA0Pi[const *][3], int *__f109__CPA0Pi[const 3][3], int **__f110__PA0PPi[static 3][3], int *const *__f111__CPA0PCPi[static const 3][3], int *const *const __f112__CPA0CPCPi[static const 3][3], int *(*)(int [const *][3]), int *(*)(int [const 3][3]), int **(*)(int [static 3][3]), int *const *(*)(int [static const 3][3]), int *const *const (*)(int [static const 3][3])){
+}
Index: src/Tests/Output-r/Typeof.txt
===================================================================
--- src/Tests/Output-r/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,68 @@
+nameExpr is v1
+decl is v1: pointer to signed int 
+newExpr is Variable Expression: v1: pointer to signed int 
+
+alternatives before prune:
+Cost ( 0, 0, 0 ): Variable Expression: v1: pointer to signed int 
+(types:
+    lvalue pointer to signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 1 ): Cast of:
+  Variable Expression: v1: pointer to signed int 
+
+to:
+  nothing
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+nameExpr is *?
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 4 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 4 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 4 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Error: No reasonable alternatives for expression Name: *?
+
Index: src/Tests/Output-r/VariableDeclarator.txt
===================================================================
--- src/Tests/Output-r/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,740 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 10 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 10 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 3 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 3 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __f1__i;
+int __f2__i;
+int *__f3__Pi;
+int **__f4__PPi;
+int *const *__f5__PCPi;
+int *const *const __f6__CPCPi;
+int *__f7__Pi;
+int **__f8__PPi;
+int *const *__f9__PCPi;
+int *const *const __f10__CPCPi;
+int *__f11__Pi;
+int **__f12__PPi;
+int *const *__f13__PCPi;
+int *const *const __f14__CPCPi;
+int __f15__A0i[];
+int __f16__A0i[((long unsigned int )10)];
+int __f17__A0i[];
+int __f18__A0i[((long unsigned int )10)];
+int *__f19__A0Pi[];
+int *__f20__A0Pi[((long unsigned int )10)];
+int **__f21__A0PPi[];
+int **__f22__A0PPi[((long unsigned int )10)];
+int *const *__f23__A0PCPi[];
+int *const *__f24__A0PCPi[((long unsigned int )10)];
+int *const *const __f25__A0CPCPi[];
+int *const *const __f26__A0CPCPi[((long unsigned int )10)];
+int *__f27__A0Pi[];
+int *__f28__A0Pi[((long unsigned int )10)];
+int **__f29__A0PPi[];
+int **__f30__A0PPi[((long unsigned int )10)];
+int *const *__f31__A0PCPi[];
+int *const *__f32__A0PCPi[((long unsigned int )10)];
+int *const *const __f33__A0CPCPi[];
+int *const *const __f34__A0CPCPi[((long unsigned int )10)];
+int (*__f35__PA0i)[];
+int (*__f36__PA0i)[10];
+int (**__f37__PPA0i)[];
+int (**__f38__PPA0i)[10];
+int (*const *__f39__PCPA0i)[];
+int (*const *__f40__PCPA0i)[10];
+int (*const *const __f41__CPCPA0i)[];
+int (*const *const __f42__CPCPA0i)[10];
+int __f43__A0A0i[][3];
+int __f44__A0A0i[((long unsigned int )3)][3];
+int __f45__A0A0i[][3];
+int __f46__A0A0i[((long unsigned int )3)][3];
+int __f47__A0A0i[][3];
+int __f48__A0A0i[((long unsigned int )3)][3];
+int *__f49__A0A0Pi[][3];
+int *__f50__A0A0Pi[((long unsigned int )3)][3];
+int **__f51__A0A0PPi[][3];
+int **__f52__A0A0PPi[((long unsigned int )3)][3];
+int *const *__f53__A0A0PCPi[][3];
+int *const *__f54__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __f55__A0A0CPCPi[][3];
+int *const *const __f56__A0A0CPCPi[((long unsigned int )3)][3];
+int *__f57__A0A0Pi[][3];
+int *__f58__A0A0Pi[((long unsigned int )3)][3];
+int **__f59__A0A0PPi[][3];
+int **__f60__A0A0PPi[((long unsigned int )3)][3];
+int *const *__f61__A0A0PCPi[][3];
+int *const *__f62__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __f63__A0A0CPCPi[][3];
+int *const *const __f64__A0A0CPCPi[((long unsigned int )3)][3];
+int __f65__Fi_i_(int );
+int __f66__Fi_i_(int );
+int *__f67__FPi_i_(int );
+int **__f68__FPPi_i_(int );
+int *const *__f69__FPCPi_i_(int );
+int *const *const __f70__FCPCPi_i_(int );
+int *__f71__FPi_i_(int );
+int **__f72__FPPi_i_(int );
+int *const *__f73__FPCPi_i_(int );
+int *const *const __f74__FCPCPi_i_(int );
+int (*__f75__PFi_i_)(int );
+int (**__f76__PPFi_i_)(int );
+int (*const *__f77__PCPFi_i_)(int );
+int (*const *const __f78__CPCPFi_i_)(int );
+int (*(*__f79__PFPFi___i_)(int ))();
+int (*(*const __f80__CPFPFi___i_)(int ))();
+int (*const (*const __f81__CPFCPFi___i_)(int ))();
+int *__cf3__Pi;
+int **__cf4__PPi;
+int *const *__cf5__PCPi;
+int *const *const __cf6__CPCPi;
+int __cf15__A0i[];
+int __cf16__A0i[((long unsigned int )10)];
+int *__cf19__A0Pi[];
+int *__cf20__A0Pi[((long unsigned int )10)];
+int **__cf21__A0PPi[];
+int **__cf22__A0PPi[((long unsigned int )10)];
+int *const *__cf23__A0PCPi[];
+int *const *__cf24__A0PCPi[((long unsigned int )10)];
+int *const *const __cf25__A0CPCPi[];
+int *const *const __cf26__A0CPCPi[((long unsigned int )10)];
+int (*__cf35__PA0i)[];
+int (*__cf36__PA0i)[10];
+int (**__cf37__PPA0i)[];
+int (**__cf38__PPA0i)[10];
+int (*const *__cf39__PCPA0i)[];
+int (*const *__cf40__PCPA0i)[10];
+int (*const *const __cf41__CPCPA0i)[];
+int (*const *const __cf42__CPCPA0i)[10];
+int __cf43__A0A0i[][3];
+int __cf44__A0A0i[((long unsigned int )3)][3];
+int *__cf49__A0A0Pi[][3];
+int *__cf50__A0A0Pi[((long unsigned int )3)][3];
+int **__cf51__A0A0PPi[][3];
+int **__cf52__A0A0PPi[((long unsigned int )3)][3];
+int *const __cf53__A0A0CPi[][3];
+int *const *__cf54__A0A0PCPi[((long unsigned int )3)][3];
+int *const *const __cf55__A0A0CPCPi[][3];
+int *const *const __cf56__A0A0CPCPi[((long unsigned int )3)][3];
+int __cf65__Fi_i_(int );
+int __cf66__Fi_i_(int );
+int *__cf67__FPi_i_(int );
+int **__cf68__FPPi_i_(int );
+int **const __cf69__FCPPi_i_(int );
+int *const *const __cf70__FCPCPi_i_(int );
+int (*(*(*(*(*__v3__PA0PA0PFPA0PA0i_PA0PA0iPA0PA0i_)[])[])(int (*(*)[])[], int (*(*)[])[]))[])[];
Index: src/Tests/Output-r/gcc900407-1.txt
===================================================================
--- src/Tests/Output-r/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+nameExpr is ?=?
+nameExpr is ?=?
+nameExpr is ?!=?
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-r/gcc900516-1.txt
===================================================================
--- src/Tests/Output-r/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3 @@
+nameExpr is !?
+Error: No reasonable alternatives for expression Name: !?
+
Index: src/Tests/Output-r/gcc920301-1.txt
===================================================================
--- src/Tests/Output-r/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): constant expression 5 signed int (types:
+    signed int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+alternatives before prune:
+Cost ( 0, 0, 2 ): Cast of:
+constant expression 5 signed int 
+to:
+  long unsigned int 
+(types:
+    long unsigned int 
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+int __f__Fi__(){
+    static void *__t__A0Pv[];
+    __L1__: /* null statement */ ;
+
+}
+int __g__Fi__(){
+    static unsigned int __p__A0Ui[((long unsigned int )5)];
+}
Index: src/Tests/Output-r/gcc920409-1.txt
===================================================================
--- src/Tests/Output-r/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3 @@
+nameExpr is ?!=?
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Output-r/gcc920409-2.txt
===================================================================
--- src/Tests/Output-r/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+nameExpr is ?!=?
+nameExpr is ?=?
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: ?!=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-r/gcc920410-2.txt
===================================================================
--- src/Tests/Output-r/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,3 @@
+nameExpr is ?!=?
+Error: No reasonable alternatives for expression Name: ?!=?
+
Index: src/Tests/Output-r/gcc920501-1.txt
===================================================================
--- src/Tests/Output-r/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+alternatives before prune:
+Cost ( 0, 0, 0 ): Applying untyped: 
+    Name: LabAddress
+...to: 
+    Name: c
+(types:
+)
+Environment: 
+
+there are 1 alternatives before elimination
+there are 1 alternatives after elimination
+Segmentation fault (core dumped)
Index: src/Tests/Output-r/gcc920501-11.txt
===================================================================
--- src/Tests/Output-r/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Output-r/gcc920501-19.txt
===================================================================
--- src/Tests/Output-r/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+nameExpr is 0
+nameExpr is ?=?
+Error: No reasonable alternatives for expression Name: 0
+
+Error: No reasonable alternatives for expression Name: ?=?
+
Index: src/Tests/Output-r/report
===================================================================
--- src/Tests/Output-r/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-r/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Output-s/Abstype.txt
===================================================================
--- src/Tests/Output-s/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,52 @@
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function x
+--- Entering scope
+--- Leaving scope containing
+Adding function y
+--- Entering scope
+Adding object t
+--- Entering scope
+Adding object t_instance
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function *?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function ?++
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type DT
+--- Leaving scope containing
+DT
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function x
+--- Entering scope
+Adding object u
+--- Entering scope
+Adding object u_instance
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function break_abstraction
+--- Entering scope
+Adding object u
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Array.txt
===================================================================
--- src/Tests/Output-s/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,38 @@
+Adding object a1
+Adding object a2
+Adding object a4
+Adding object m1
+Adding object m2
+Adding object m4
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding object a1
+Adding object a2
+Adding object a4
+Adding object T
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function mary
+--- Entering scope
+Adding object T
+Adding object p1
+Adding object p2
+Adding object p3
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function tom
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function jane
+--- Entering scope
+Adding object T
+Adding object p1
+Adding object p2
+Adding object p3
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/AsmName.txt
===================================================================
--- src/Tests/Output-s/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+Adding object x
+Adding function fred
+--- Entering scope
+Adding object x
+--- Entering scope
+Adding object y
+Adding object z
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Attributes.txt
===================================================================
--- src/Tests/Output-s/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Output-s/Cast.txt
===================================================================
--- src/Tests/Output-s/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+Adding object f
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object f
+Adding object f
+Adding object f
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/CastError.txt
===================================================================
--- src/Tests/Output-s/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Adding object f
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object f
+Adding object f
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/CharStringConstants.txt
===================================================================
--- src/Tests/Output-s/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/CommentMisc.txt
===================================================================
--- src/Tests/Output-s/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,10 @@
+Adding object i
+Adding object i
+Adding object i
+Adding object i
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Constant0-1.txt
===================================================================
--- src/Tests/Output-s/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,107 @@
+Adding object 0
+Adding object 0
+Adding object 0
+Adding object 1
+Adding object 1
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding fwd decl for struct __anonymous1
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous1
+--- Entering scope
+--- Leaving scope containing
+Adding object 1
+Adding fwd decl for struct __anonymous2
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous2
+--- Entering scope
+--- Leaving scope containing
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding object 0
+Adding object 1
+Adding fwd decl for struct __anonymous3
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous3
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding object x
+Adding object 0
+Adding object x
+Adding object 0
+Adding object x
+Adding object 0
+Adding fwd decl for struct __anonymous4
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous4
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding fwd decl for struct __anonymous5
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous5
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding fwd decl for struct __anonymous6
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous6
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding object x
+Adding object 0
+Adding object x
+Adding object 0
+Adding object x
+Adding object 0
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object 1
+Adding object 0
+Adding object x
+Adding object 0
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Context.txt
===================================================================
--- src/Tests/Output-s/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,45 @@
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function q
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding context has_q
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type z
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function r
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding context has_r
+--- Entering scope
+--- Leaving scope containing
+Adding type x
+--- Entering scope
+--- Leaving scope containing
+Adding type y
+--- Leaving scope containing
+x
+y
+has_r
+--- Leaving scope containing
+z
Index: src/Tests/Output-s/DeclarationErrors.txt
===================================================================
--- src/Tests/Output-s/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-s/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Output-s/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-s/Enum.txt
===================================================================
--- src/Tests/Output-s/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,20 @@
+Adding enum Colors
+Adding object Red
+Adding object Yellow
+Adding object Pink
+Adding object Blue
+Adding object Purple
+Adding object Orange
+Adding object Green
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding enum Fruits
+Adding object Apple
+Adding object Banana
+Adding object Pear
+Adding object Mango
+Adding object fruit
+--- Leaving scope containing
+Fruits
+--- Leaving scope containing
Index: src/Tests/Output-s/Exception.txt
===================================================================
--- src/Tests/Output-s/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding struct __anonymous1 from implicit forward declaration
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding struct __anonymous2 from implicit forward declaration
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding struct __anonymous3 from implicit forward declaration
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding struct __anonymous4 from implicit forward declaration
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+__anonymous0
+__anonymous1
+__anonymous2
+__anonymous3
+__anonymous4
+--- Leaving scope containing
Index: src/Tests/Output-s/Expression.txt
===================================================================
--- src/Tests/Output-s/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15 @@
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding fwd decl for struct s
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct s
+--- Entering scope
+--- Leaving scope containing
+Adding object p
+Adding object i
+--- Leaving scope containing
+s
+--- Leaving scope containing
Index: src/Tests/Output-s/Forall.txt
===================================================================
--- src/Tests/Output-s/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,235 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function g1
+--- Entering scope
+--- Entering scope
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function h
+--- Entering scope
+Adding object p
+--- Leaving scope containing
+Adding object x
+Adding object y
+Adding object z
+Adding object w
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g2
+--- Entering scope
+--- Entering scope
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding object x
+Adding object y
+Adding object z
+Adding object w
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function swap
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object left
+Adding object right
+--- Entering scope
+Adding object temp
+--- Leaving scope containing
+--- Leaving scope containing
+T
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object 0
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?++
+--- Entering scope
+--- Leaving scope containing
+Adding function ?+=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding context sumable
+--- Entering scope
+--- Leaving scope containing
+Adding type T1
+Adding object 0
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?++
+--- Entering scope
+--- Leaving scope containing
+Adding function ?+=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type P1
+--- Entering scope
+--- Leaving scope containing
+Adding type P2
+--- Leaving scope containing
+P1
+P2
+Adding type T2
+--- Entering scope
+--- Leaving scope containing
+Adding type T3
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object i
+Adding object j
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type P1
+--- Entering scope
+--- Leaving scope containing
+Adding type P2
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+P1
+P2
+Adding type T2
+Adding object w1
+Adding object g2
+--- Entering scope
+--- Leaving scope containing
+Adding type w3
+Adding object g3
+Adding function sum
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object n
+Adding object a
+--- Entering scope
+Adding object total
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function twice
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?++
+--- Entering scope
+--- Leaving scope containing
+Adding function ?+=?
+--- Entering scope
+--- Leaving scope containing
+Adding object t
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function min
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding function ?!=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?<?
+--- Entering scope
+--- Leaving scope containing
+Adding object t1
+Adding object t2
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object x
+Adding object y
+Adding object a
+Adding object f
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Function.txt
===================================================================
--- src/Tests/Output-s/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,29 @@
+Adding object a
+Adding object a
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding object p
+Adding object p
+Adding object p
+Adding object p
+Adding object q
+Adding object q
+Adding object q
+Adding object q
+Adding function r
+--- Entering scope
+--- Leaving scope containing
+Adding function s
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Functions.txt
===================================================================
--- src/Tests/Output-s/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,374 @@
+Adding function h
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object g
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f2
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f3
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f4
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f5
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f6
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f7
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f8
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f9
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f10
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f11
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f12
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII1
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII2
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII3
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII4
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII5
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII6
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII7
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII8
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fII9
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO1
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO2
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO3
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO4
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function fO5
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object x
+Adding object y
+Adding object x
+Adding object y
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f11
+--- Entering scope
+--- Leaving scope containing
+Adding function f12
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object p
+--- Entering scope
+Adding object p
+Adding object p
+Adding object p
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f2
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f3
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f4
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f5
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object f
+Adding object t
+--- Entering scope
+Adding object T
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/GccExtensions.txt
===================================================================
--- src/Tests/Output-s/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,70 @@
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding object c1
+Adding object c2
+Adding object i1
+Adding object i2
+Adding object i3
+Adding object ex
+Adding function f1
+--- Entering scope
+--- Leaving scope containing
+Adding function f2
+--- Entering scope
+--- Leaving scope containing
+Adding object s1
+Adding object s2
+Adding object t1
+Adding object t2
+Adding object v1
+Adding object v2
+Adding object a1
+Adding object a2
+Adding object a3
+Adding object a4
+Adding object a5
+Adding object a6
+Adding object a7
+Adding object p1
+Adding object p2
+Adding fwd decl for struct s1
+--- Entering scope
+--- Leaving scope containing
+Adding struct s1
+Adding fwd decl for struct s2
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct s2
+Adding fwd decl for struct s3
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct s3
+--- Entering scope
+--- Leaving scope containing
+Adding object x1
+--- Entering scope
+--- Leaving scope containing
+Adding object y1
+Adding fwd decl for struct s4
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+Adding struct s4
+--- Entering scope
+--- Leaving scope containing
+Adding object x2
+--- Entering scope
+--- Leaving scope containing
+Adding object y2
+Adding object m1
+Adding object m2
+Adding object m3
+--- Leaving scope containing
+s1
+s2
+s3
+s4
+--- Leaving scope containing
Index: src/Tests/Output-s/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Output-s/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,106 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object f1
+Adding object f2
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f7
+Adding object f8
+Adding object f9
+Adding object f10
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f17
+Adding object f18
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f27
+Adding object f28
+Adding object f29
+Adding object f30
+Adding object f31
+Adding object f32
+Adding object f33
+Adding object f34
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f45
+Adding object f46
+Adding object f47
+Adding object f48
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding function f65
+--- Entering scope
+--- Leaving scope containing
+Adding function f66
+--- Entering scope
+--- Leaving scope containing
+Adding function f67
+--- Entering scope
+--- Leaving scope containing
+Adding function f68
+--- Entering scope
+--- Leaving scope containing
+Adding function f69
+--- Entering scope
+--- Leaving scope containing
+Adding function f70
+--- Entering scope
+--- Leaving scope containing
+Adding function f71
+--- Entering scope
+--- Leaving scope containing
+Adding function f72
+--- Entering scope
+--- Leaving scope containing
+Adding function f73
+--- Entering scope
+--- Leaving scope containing
+Adding function f74
+--- Entering scope
+--- Leaving scope containing
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Output-s/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,122 @@
+Adding function fred
+--- Entering scope
+Adding object f1
+Adding object f2
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f7
+Adding object f8
+Adding object f9
+Adding object f10
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f17
+Adding object f18
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f27
+Adding object f28
+Adding object f29
+Adding object f30
+Adding object f31
+Adding object f32
+Adding object f33
+Adding object f34
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f45
+Adding object f46
+Adding object f47
+Adding object f48
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding object f65
+Adding object f66
+Adding object f67
+Adding object f68
+Adding object f69
+Adding object f70
+Adding object f71
+Adding object f72
+Adding object f73
+Adding object f74
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+Adding object f82
+Adding object f83
+Adding object f84
+Adding object f85
+Adding object f86
+Adding object f87
+Adding object f88
+Adding object f89
+Adding object f90
+Adding object f91
+Adding object f92
+Adding object f93
+Adding object f94
+Adding object f95
+Adding object f96
+Adding object f97
+Adding object f98
+Adding object f99
+Adding object f100
+Adding object f101
+Adding object f102
+Adding object f103
+Adding object f104
+Adding object f105
+Adding object f106
+Adding object f107
+Adding object f108
+Adding object f109
+Adding object f110
+Adding object f111
+Adding object f112
+Adding object f113
+Adding object f114
+Adding object f115
+Adding object f116
+Adding object f117
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/InferParam.txt
===================================================================
--- src/Tests/Output-s/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,87 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function i
+--- Entering scope
+--- Leaving scope containing
+Adding function h
+--- Entering scope
+--- Entering scope
+Adding object a
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function j
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding context has_f_and_j
+Adding function j
+--- Entering scope
+--- Leaving scope containing
+Adding function k
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+U
+Adding function l
+--- Entering scope
+--- Entering scope
+Adding object b
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Initialization.txt
===================================================================
--- src/Tests/Output-s/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,86 @@
+Adding object x11
+Adding object x12
+Adding object x21
+Adding object x22
+Adding object y1
+Adding object y2
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object w
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object a
+Adding fwd decl for struct __anonymous1
+--- Entering scope
+Adding object a
+Adding object b
+--- Leaving scope containing
+Adding struct __anonymous1
+--- Entering scope
+--- Leaving scope containing
+Adding object w
+Adding fwd decl for struct __anonymous2
+--- Entering scope
+Adding object g1
+Adding object g2
+Adding object g3
+--- Leaving scope containing
+Adding struct __anonymous2
+Adding fwd decl for struct __anonymous3
+--- Entering scope
+Adding object f1
+Adding object f2
+Adding object f3
+--- Entering scope
+--- Leaving scope containing
+Adding object f4
+--- Leaving scope containing
+Adding struct __anonymous3
+--- Entering scope
+--- Leaving scope containing
+Adding object v7
+Adding fwd decl for struct __anonymous4
+--- Entering scope
+Adding object y1
+Adding object y2
+Adding object y3
+--- Leaving scope containing
+Adding struct __anonymous4
+Adding fwd decl for struct point
+--- Entering scope
+Adding object x
+Adding object z
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+Adding object w
+--- Leaving scope containing
+Adding struct point
+Adding fwd decl for struct quintet
+--- Entering scope
+Adding object v
+Adding object w
+Adding object x
+Adding object y
+Adding object z
+--- Leaving scope containing
+Adding struct quintet
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding object p1
+--- Entering scope
+--- Leaving scope containing
+Adding object p2
+--- Entering scope
+--- Leaving scope containing
+Adding object p3
+--- Entering scope
+--- Leaving scope containing
+Adding object p4
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Initialization2.txt
===================================================================
--- src/Tests/Output-s/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,114 @@
+Adding object a
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object z
+Adding fwd decl for struct __anonymous1
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous1
+--- Entering scope
+--- Leaving scope containing
+Adding object z1
+Adding fwd decl for struct __anonymous2
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous2
+--- Entering scope
+--- Leaving scope containing
+Adding object z2
+Adding fwd decl for struct __anonymous3
+--- Entering scope
+Adding object y1
+Adding object y2
+--- Leaving scope containing
+Adding struct __anonymous3
+Adding fwd decl for struct __anonymous4
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous4
+--- Entering scope
+--- Leaving scope containing
+Adding object z3
+Adding fwd decl for struct __anonymous5
+--- Entering scope
+Adding object y1
+Adding object y2
+--- Leaving scope containing
+Adding struct __anonymous5
+Adding fwd decl for struct __anonymous6
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous6
+--- Entering scope
+--- Leaving scope containing
+Adding object z3
+Adding fwd decl for struct __anonymous7
+--- Entering scope
+Adding object y1
+Adding object y2
+--- Leaving scope containing
+Adding struct __anonymous7
+Adding fwd decl for struct __anonymous8
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous8
+--- Entering scope
+--- Leaving scope containing
+Adding object z3
+Adding fwd decl for struct __anonymous9
+--- Entering scope
+Adding object y1
+Adding object y2
+--- Leaving scope containing
+Adding struct __anonymous9
+Adding fwd decl for struct __anonymous10
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous10
+--- Entering scope
+--- Leaving scope containing
+Adding object z3
+Adding fwd decl for struct t
+--- Entering scope
+Adding object a
+Adding object b
+--- Leaving scope containing
+Adding struct t
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+Adding fwd decl for struct __anonymous11
+--- Entering scope
+Adding object x
+Adding object y
+--- Leaving scope containing
+Adding struct __anonymous11
+--- Entering scope
+--- Leaving scope containing
+Adding object z6
Index: src/Tests/Output-s/LabelledExit.txt
===================================================================
--- src/Tests/Output-s/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,70 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object i
+Adding object x
+Adding object y
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Entering scope
+Adding object array
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Members.txt
===================================================================
--- src/Tests/Output-s/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,103 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type DT
+--- Leaving scope containing
+DT
+Adding function *?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function __builtin_memcpy
+--- Entering scope
+--- Leaving scope containing
+Adding function a
+--- Entering scope
+--- Leaving scope containing
+Adding function b
+--- Entering scope
+--- Leaving scope containing
+Adding function c
+--- Entering scope
+--- Leaving scope containing
+Adding function d
+--- Entering scope
+--- Leaving scope containing
+Adding fwd decl for struct a_struct
+--- Entering scope
+Adding object a
+Adding object a
+Adding object a
+--- Leaving scope containing
+Adding struct a_struct
+Adding fwd decl for union b_struct
+--- Entering scope
+Adding object a
+Adding object a
+Adding object a
+--- Leaving scope containing
+Adding union b_struct
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding object the_struct
+--- Entering scope
+--- Leaving scope containing
+Adding object the_struct
+--- Leaving scope containing
+--- Leaving scope containing
+Adding fwd decl for struct c_struct
+--- Entering scope
+--- Leaving scope containing
+Adding struct c_struct
+Adding fwd decl for union d_struct
+--- Entering scope
+--- Leaving scope containing
+Adding union d_struct
+Adding function g
+--- Entering scope
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Leaving scope containing
+--- Leaving scope containing
+Adding fwd decl for struct forward
+--- Entering scope
+--- Leaving scope containing
+Adding struct forward
+--- Entering scope
+--- Leaving scope containing
+Adding object q
+Adding fwd decl for struct forward
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+Adding struct forward
+Adding function h
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Misc.txt
===================================================================
--- src/Tests/Output-s/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Adding object a
+Adding object b
+Adding object b
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/MiscError.txt
===================================================================
--- src/Tests/Output-s/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,11 @@
+Adding object a
+Adding object b
+Adding object b
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/NamedParmArg.txt
===================================================================
--- src/Tests/Output-s/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,19 @@
+Adding function f1
+--- Entering scope
+Adding object i
+Adding object j
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function f2
+--- Entering scope
+Adding object i
+Adding object j
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/NumericConstants.txt
===================================================================
--- src/Tests/Output-s/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,5 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/OccursError.txt
===================================================================
--- src/Tests/Output-s/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,25 @@
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+U
+Adding function test
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Operators.txt
===================================================================
--- src/Tests/Output-s/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,39 @@
+Adding function ?*?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?()
+--- Entering scope
+Adding object number1
+Adding object number2
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding fwd decl for struct accumulator
+--- Entering scope
+Adding object total
+--- Leaving scope containing
+Adding struct accumulator
+Adding function ?()
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding object a
+Adding object number1
+Adding object number2
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object a
+Adding object b
+--- Entering scope
+--- Leaving scope containing
+Adding object ?+?
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Quad.txt
===================================================================
--- src/Tests/Output-s/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,43 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?*?
+--- Entering scope
+--- Leaving scope containing
+Adding function square
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?*?
+--- Entering scope
+--- Leaving scope containing
+Adding object t
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function quad
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function square
+--- Entering scope
+--- Leaving scope containing
+Adding object u
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+U
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Rank2.txt
===================================================================
--- src/Tests/Output-s/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,61 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type DT
+--- Leaving scope containing
+DT
+Adding function a
+--- Entering scope
+--- Entering scope
+Adding function f
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type U
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object p
+--- Leaving scope containing
+U
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+Adding function h
+--- Entering scope
+Adding object null
+--- Leaving scope containing
+Adding function id
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object 0
+Adding object 0
+--- Leaving scope containing
+T
+--- Leaving scope containing
Index: src/Tests/Output-s/Scope.txt
===================================================================
--- src/Tests/Output-s/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+Adding object x
+Adding object z
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object a
+Adding object b
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding type u
+Adding function f
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+Adding object q
+Adding function w
+--- Entering scope
+Adding object y
+Adding object v
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type x
+Adding function t
+--- Entering scope
+--- Leaving scope containing
+Adding object u
+Adding object z
+--- Leaving scope containing
+x
+--- Leaving scope containing
+Adding object p
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type z
+Adding function u
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+z
+Adding context has_u
+Adding function q
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type t
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object the_t
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+--- Leaving scope containing
+t
+Adding function f
+--- Entering scope
+Adding object p
+--- Entering scope
+Adding object y
+--- Entering scope
+Adding object y
+--- Entering scope
+Adding object x
+Adding object z
+--- Leaving scope containing
+Adding object x
+--- Leaving scope containing
+Adding object q
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding object x
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+Adding object z
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function q
+--- Entering scope
+Adding object i
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/ScopeErrors.txt
===================================================================
--- src/Tests/Output-s/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,36 @@
+Adding object thisIsAnError
+Adding object thisIsAnError
+Adding object thisIsNotAnError
+Adding object thisIsNotAnError
+Adding function thisIsAlsoNotAnError
+--- Entering scope
+--- Entering scope
+Adding object thisIsNotAnError
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function thisIsAlsoNotAnError
+--- Entering scope
+Adding object x
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function thisIsStillNotAnError
+--- Entering scope
+--- Leaving scope containing
+Adding function thisIsStillNotAnError
+--- Entering scope
+--- Leaving scope containing
+Adding function butThisIsAnError
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function butThisIsAnError
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Output-s/ShortCircuit.txt
===================================================================
--- src/Tests/Output-s/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,21 @@
+Adding function ?!=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?!=?
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function f
+--- Entering scope
+Adding object a
+--- Entering scope
+Adding object b
+Adding object c
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Statement.txt
===================================================================
--- src/Tests/Output-s/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,31 @@
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?!=?
+--- Entering scope
+--- Leaving scope containing
+Adding object 0
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object a
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object b
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object a
+--- Entering scope
+--- Entering scope
+Adding object b
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+__anonymous0
+--- Leaving scope containing
Index: src/Tests/Output-s/StructMember.txt
===================================================================
--- src/Tests/Output-s/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,34 @@
+Adding fwd decl for struct S
+--- Entering scope
+Adding object m1
+Adding object m2
+Adding object m3
+Adding object m4
+Adding object m5
+Adding object m6
+Adding object m7
+Adding object m8
+Adding object m9
+Adding object m10
+Adding object m11
+Adding object T
+Adding object T
+Adding object m12
+Adding object m13
+Adding object m14
+--- Leaving scope containing
+Adding struct S
+--- Entering scope
+--- Leaving scope containing
+Adding object s
+Adding fwd decl for union U
+--- Entering scope
+Adding object m1
+Adding object m2
+Adding object m3
+Adding object m4
+--- Leaving scope containing
+Adding union U
+--- Entering scope
+--- Leaving scope containing
+Adding object u
Index: src/Tests/Output-s/Subrange.txt
===================================================================
--- src/Tests/Output-s/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,78 @@
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?<?
+--- Entering scope
+--- Leaving scope containing
+Adding function ?<=?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding context ordered
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type base_t
+--- Leaving scope containing
+base_t
+Adding type subrange
+Adding object day_of_month
+Adding object lcase
+Adding object foo
+Adding function lbound
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object v
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function hbound
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object v
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding object lday
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object target
+Adding object source
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding function ?=?
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?=?
+--- Entering scope
+--- Leaving scope containing
+Adding object target
+Adding object source
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
Index: src/Tests/Output-s/Switch.txt
===================================================================
--- src/Tests/Output-s/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding function fred
+--- Entering scope
+--- Entering scope
+Adding object i
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Tuple.txt
===================================================================
--- src/Tests/Output-s/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,79 @@
+Adding function f
+--- Entering scope
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Leaving scope containing
+Adding function h
+--- Entering scope
+Adding object a
+Adding object b
+Adding object c
+Adding object d
+--- Leaving scope containing
+Adding fwd decl for struct inner
+--- Entering scope
+Adding object f2
+Adding object f3
+--- Leaving scope containing
+Adding struct inner
+Adding fwd decl for struct outer
+--- Entering scope
+Adding object f1
+--- Entering scope
+--- Leaving scope containing
+Adding object i
+Adding object f4
+--- Leaving scope containing
+Adding struct outer
+--- Entering scope
+--- Leaving scope containing
+Adding object s
+--- Entering scope
+--- Leaving scope containing
+Adding object sp
+Adding object t1
+Adding object t2
+Adding object t3
+Adding function printf
+--- Entering scope
+Adding object rc
+Adding object fmt
+--- Leaving scope containing
+Adding function printf
+--- Entering scope
+Adding object fmt
+--- Leaving scope containing
+Adding function f1
+--- Entering scope
+Adding object x
+Adding object y
+Adding object w
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g1
+--- Entering scope
+Adding object r
+--- Entering scope
+Adding object x
+Adding object p
+Adding object y
+Adding object z
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function main
+--- Entering scope
+Adding object rc
+Adding object argc
+Adding object argv
+--- Entering scope
+Adding object a
+Adding object b
+Adding object c
+Adding object d
+--- Entering scope
+--- Leaving scope containing
+Adding object t
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/TypeGenerator.txt
===================================================================
--- src/Tests/Output-s/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,113 @@
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding function ?+?
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding context addable
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object data
+Adding object next
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding type List1
+Adding object li
+Adding function f
+--- Entering scope
+Adding object g
+--- Leaving scope containing
+Adding function h
+--- Entering scope
+Adding object p
+--- Leaving scope containing
+Adding fwd decl for struct S1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Leaving scope containing
+T
+Adding struct S1
+Adding fwd decl for struct S1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object i
+--- Leaving scope containing
+T
+Adding struct S1
+--- Entering scope
+--- Leaving scope containing
+Adding object v1
+--- Entering scope
+--- Leaving scope containing
+Adding object p
+Adding fwd decl for struct S2
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object i
+--- Leaving scope containing
+T
+Adding struct S2
+--- Entering scope
+--- Leaving scope containing
+Adding object v2
+Adding fwd decl for struct __anonymous1
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object i
+--- Leaving scope containing
+T
+Adding struct __anonymous1
+--- Entering scope
+--- Leaving scope containing
+Adding object v2
+Adding fwd decl for struct node
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+Adding object data
+--- Entering scope
+--- Leaving scope containing
+Adding object next
+--- Leaving scope containing
+T
+Adding struct node
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+Adding type T
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+T
+Adding type List
+Adding object my_list
+--- Entering scope
+--- Leaving scope containing
+Adding type Complex
+Adding function main
+--- Entering scope
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Typedef.txt
===================================================================
--- src/Tests/Output-s/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,34 @@
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding function T
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+Adding fwd decl for struct __anonymous0
+--- Entering scope
+Adding object T
+--- Leaving scope containing
+Adding struct __anonymous0
+--- Entering scope
+--- Leaving scope containing
+Adding object fred
+Adding object b
+Adding function g
+--- Entering scope
+--- Entering scope
+Adding object a
+--- Leaving scope containing
+--- Leaving scope containing
+Adding object c
+Adding object p
+Adding object q
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object w
+Adding object x
+--- Leaving scope containing
+--- Leaving scope containing
+Adding object array
Index: src/Tests/Output-s/TypedefDeclarator.txt
===================================================================
--- src/Tests/Output-s/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,106 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object f1
+Adding object f2
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f7
+Adding object f8
+Adding object f9
+Adding object f10
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f17
+Adding object f18
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f27
+Adding object f28
+Adding object f29
+Adding object f30
+Adding object f31
+Adding object f32
+Adding object f33
+Adding object f34
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f45
+Adding object f46
+Adding object f47
+Adding object f48
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding function f65
+--- Entering scope
+--- Leaving scope containing
+Adding function f66
+--- Entering scope
+--- Leaving scope containing
+Adding function f67
+--- Entering scope
+--- Leaving scope containing
+Adding function f68
+--- Entering scope
+--- Leaving scope containing
+Adding function f69
+--- Entering scope
+--- Leaving scope containing
+Adding function f70
+--- Entering scope
+--- Leaving scope containing
+Adding function f71
+--- Entering scope
+--- Leaving scope containing
+Adding function f72
+--- Entering scope
+--- Leaving scope containing
+Adding function f73
+--- Entering scope
+--- Leaving scope containing
+Adding function f74
+--- Entering scope
+--- Leaving scope containing
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Output-s/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,80 @@
+Adding function fred
+--- Entering scope
+Adding object f1
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding object f65
+Adding object f67
+Adding object f68
+Adding object f69
+Adding object f70
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+Adding object f82
+Adding object f83
+Adding object f84
+Adding object f85
+Adding object f90
+Adding object f91
+Adding object f92
+Adding object f93
+Adding object f94
+Adding object f100
+Adding object f101
+Adding object f102
+Adding object f103
+Adding object f108
+Adding object f109
+Adding object f110
+Adding object f111
+Adding object f112
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/Typeof.txt
===================================================================
--- src/Tests/Output-s/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,15 @@
+Adding function main
+--- Entering scope
+--- Entering scope
+Adding object v1
+Adding object v2
+Adding object v3
+Adding object v4
+Adding object v5
+Adding object v6
+Adding object p
+Adding object v7
+Adding object p
+Adding object v8
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/VariableDeclarator.txt
===================================================================
--- src/Tests/Output-s/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,152 @@
+Adding object f1
+Adding object f2
+Adding object f3
+Adding object f4
+Adding object f5
+Adding object f6
+Adding object f7
+Adding object f8
+Adding object f9
+Adding object f10
+Adding object f11
+Adding object f12
+Adding object f13
+Adding object f14
+Adding object f15
+Adding object f16
+Adding object f17
+Adding object f18
+Adding object f19
+Adding object f20
+Adding object f21
+Adding object f22
+Adding object f23
+Adding object f24
+Adding object f25
+Adding object f26
+Adding object f27
+Adding object f28
+Adding object f29
+Adding object f30
+Adding object f31
+Adding object f32
+Adding object f33
+Adding object f34
+Adding object f35
+Adding object f36
+Adding object f37
+Adding object f38
+Adding object f39
+Adding object f40
+Adding object f41
+Adding object f42
+Adding object f43
+Adding object f44
+Adding object f45
+Adding object f46
+Adding object f47
+Adding object f48
+Adding object f49
+Adding object f50
+Adding object f51
+Adding object f52
+Adding object f53
+Adding object f54
+Adding object f55
+Adding object f56
+Adding object f57
+Adding object f58
+Adding object f59
+Adding object f60
+Adding object f61
+Adding object f62
+Adding object f63
+Adding object f64
+Adding function f65
+--- Entering scope
+--- Leaving scope containing
+Adding function f66
+--- Entering scope
+--- Leaving scope containing
+Adding function f67
+--- Entering scope
+--- Leaving scope containing
+Adding function f68
+--- Entering scope
+--- Leaving scope containing
+Adding function f69
+--- Entering scope
+--- Leaving scope containing
+Adding function f70
+--- Entering scope
+--- Leaving scope containing
+Adding function f71
+--- Entering scope
+--- Leaving scope containing
+Adding function f72
+--- Entering scope
+--- Leaving scope containing
+Adding function f73
+--- Entering scope
+--- Leaving scope containing
+Adding function f74
+--- Entering scope
+--- Leaving scope containing
+Adding object f75
+Adding object f76
+Adding object f77
+Adding object f78
+Adding object f79
+Adding object f80
+Adding object f81
+Adding object cf3
+Adding object cf4
+Adding object cf5
+Adding object cf6
+Adding object cf15
+Adding object cf16
+Adding object cf19
+Adding object cf20
+Adding object cf21
+Adding object cf22
+Adding object cf23
+Adding object cf24
+Adding object cf25
+Adding object cf26
+Adding object cf35
+Adding object cf36
+Adding object cf37
+Adding object cf38
+Adding object cf39
+Adding object cf40
+Adding object cf41
+Adding object cf42
+Adding object cf43
+Adding object cf44
+Adding object cf49
+Adding object cf50
+Adding object cf51
+Adding object cf52
+Adding object cf53
+Adding object cf54
+Adding object cf55
+Adding object cf56
+Adding function cf65
+--- Entering scope
+--- Leaving scope containing
+Adding function cf66
+--- Entering scope
+--- Leaving scope containing
+Adding function cf67
+--- Entering scope
+--- Leaving scope containing
+Adding function cf68
+--- Entering scope
+--- Leaving scope containing
+Adding function cf69
+--- Entering scope
+--- Leaving scope containing
+Adding function cf70
+--- Entering scope
+--- Leaving scope containing
+Adding object v3
Index: src/Tests/Output-s/gcc900407-1.txt
===================================================================
--- src/Tests/Output-s/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,9 @@
+Adding function foo
+--- Entering scope
+Adding object a
+Adding object b
+Adding object p
+--- Entering scope
+Adding object c
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/gcc900516-1.txt
===================================================================
--- src/Tests/Output-s/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding function f
+--- Entering scope
+Adding object c
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/gcc920301-1.txt
===================================================================
--- src/Tests/Output-s/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+Adding function f
+--- Entering scope
+--- Entering scope
+Adding object t
+--- Leaving scope containing
+--- Leaving scope containing
+Adding function g
+--- Entering scope
+--- Entering scope
+Adding object p
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/gcc920409-1.txt
===================================================================
--- src/Tests/Output-s/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding function x
+--- Entering scope
+--- Entering scope
+Adding object y
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/gcc920409-2.txt
===================================================================
--- src/Tests/Output-s/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Adding function x
+--- Entering scope
+--- Entering scope
+Adding object x1
+Adding object x2
+Adding object v
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/gcc920410-2.txt
===================================================================
--- src/Tests/Output-s/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+Adding function joe
+--- Entering scope
+--- Entering scope
+Adding object j
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/gcc920501-1.txt
===================================================================
--- src/Tests/Output-s/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding function a
+--- Entering scope
+--- Entering scope
+Adding object b
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/gcc920501-11.txt
===================================================================
--- src/Tests/Output-s/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Output-s/gcc920501-19.txt
===================================================================
--- src/Tests/Output-s/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,6 @@
+Adding object x
+Adding function y
+--- Entering scope
+--- Entering scope
+--- Leaving scope containing
+--- Leaving scope containing
Index: src/Tests/Output-s/report
===================================================================
--- src/Tests/Output-s/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-s/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,57 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: src/Tests/Output-v/Abstype.txt
===================================================================
--- src/Tests/Output-v/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Abstype.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,138 @@
+T: type
+  with assertions
+    x: function
+        with parameters
+          instance of type T (not function type) 
+        returning 
+          instance of type T (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T (not function type) 
+      _src: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+
+y: function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of t_instance: instance of type T (not function type) 
+                  Return Statement, returning: Applying untyped: 
+    Name: x
+...to: 
+    Name: t
+
+
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+?++: function
+    with parameters
+      pointer to signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+U: type for pointer to signed int 
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type U (not function type) 
+      _src: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type U (not function type) 
+
+    to:
+      pointer to pointer to signed int 
+    Cast of:
+      Variable Expression: _src: instance of type U (not function type) 
+
+    to:
+      pointer to signed int 
+
+
+
+x: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of u_instance: instance of type U (not function type) with initializer 
+          Simple Initializer:             Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: u_instance
+                Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: *?
+                  ...to: 
+                      Name: u
+
+                  Return Statement, returning: Name: u
+
+
+
+break_abstraction: function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: u
+
+
+
Index: src/Tests/Output-v/Array.txt
===================================================================
--- src/Tests/Output-v/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Array.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,50 @@
+a1: open array of signed int 
+a2: variable length array of signed int 
+a4: array of double with dimension of constant expression 3.0 double 
+m1: open array of array of signed int with dimension of constant expression 3 signed int 
+m2: variable length array of variable length array of signed int 
+m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a1: open array of signed int 
+        Declaration of a2: variable length array of signed int 
+        Declaration of a4: array of signed int with dimension of constant expression 3 signed int 
+        Declaration of T: array of signed int with dimension of constant expression 3 signed int 
+
+mary: function
+    with parameters
+      T: pointer to array of constant expression 3 signed int signed int 
+      p1: const pointer to array of constant expression 3 signed int signed int 
+      p2: pointer to static array of constant expression 3 signed int signed int 
+      p3: const pointer to static array of constant expression 3 signed int signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+tom: function
+      accepting unspecified arguments
+    returning 
+      pointer to array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+jane: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+          with parameters
+            T: pointer to array of constant expression 3 signed int signed int 
+            p1: const pointer to array of constant expression 3 signed int signed int 
+            p2: pointer to static array of constant expression 3 signed int signed int 
+            p3: const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
Index: src/Tests/Output-v/AsmName.txt
===================================================================
--- src/Tests/Output-v/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/AsmName.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,11 @@
+x: auto signed int 
+fred: function
+    with parameters
+      x: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: static signed int 
+        Declaration of z: static pointer to signed int 
+
Index: src/Tests/Output-v/Attributes.txt
===================================================================
--- src/Tests/Output-v/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Attributes.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+Error at line 8 reading token "*"
Index: src/Tests/Output-v/Cast.txt
===================================================================
--- src/Tests/Output-v/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Cast.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+f: char 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: char 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+        Declaration of f: short signed int 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              signed int 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+                  Expression Statement:
+            Cast of:
+              Tuple:
+                                  Name: f
+
+                                  Name: f
+
+                                  Name: f
+
+
+            to:
+              long signed int 
+              long double 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    nothing 
+
+
+
Index: src/Tests/Output-v/CastError.txt
===================================================================
--- src/Tests/Output-v/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/CastError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,28 @@
+f: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: signed int 
+        Declaration of f: double 
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              char 
+
+                  Expression Statement:
+            Cast of:
+              Name: f
+
+            to:
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Output-v/CharStringConstants.txt
===================================================================
--- src/Tests/Output-v/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/CharStringConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+constant expression ' ' char 
+                  Expression Statement:
+constant expression 'a' char 
+                  Expression Statement:
+constant expression '"' char 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression '\a' char 
+                  Expression Statement:
+constant expression '\b' char 
+                  Expression Statement:
+constant expression '\e' char 
+                  Expression Statement:
+constant expression '\f' char 
+                  Expression Statement:
+constant expression '\n' char 
+                  Expression Statement:
+constant expression '\r' char 
+                  Expression Statement:
+constant expression '\t' char 
+                  Expression Statement:
+constant expression '\v' char 
+                  Expression Statement:
+constant expression '\'' char 
+                  Expression Statement:
+constant expression '\"' char 
+                  Expression Statement:
+constant expression '\?' char 
+                  Expression Statement:
+constant expression '\\' char 
+                  Expression Statement:
+constant expression '\0' char 
+                  Expression Statement:
+constant expression '\377' char 
+                  Expression Statement:
+constant expression '\xf' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '' char 
+                  Expression Statement:
+constant expression 'aa' char 
+                  Expression Statement:
+constant expression 'a\na' char 
+                  Expression Statement:
+constant expression 'a\0a' char 
+                  Expression Statement:
+constant expression '\xfff' char 
+                  Expression Statement:
+constant expression '_\377_' char 
+                  Expression Statement:
+constant expression '_\xff_' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression 'a\xff34w' char 
+                  Expression Statement:
+constant expression '\xff' char 
+                  Expression Statement:
+constant expression '\xffff' char 
+                  Expression Statement:
+constant expression " " array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "a" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression "'" array of char with dimension of constant expression 4 unsigned int 
+                  Expression Statement:
+constant expression '_' char 
+                  Expression Statement:
+constant expression "\a" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\b" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\e" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\f" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\n" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\r" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\t" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\v" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\'" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\"" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\?" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\\" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\0" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "\377" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xf" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "" array of char with dimension of constant expression 3 unsigned int 
+                  Expression Statement:
+constant expression "aa" array of char with dimension of constant expression 5 unsigned int 
+                  Expression Statement:
+constant expression "a\na" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "a\0a" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "_\377_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "_\xff_" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xff" array of char with dimension of constant expression 7 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+                  Expression Statement:
+constant expression "\xfff" array of char with dimension of constant expression 8 unsigned int 
+                  Expression Statement:
+constant expression "a\xff34w" array of char with dimension of constant expression 11 unsigned int 
+                  Expression Statement:
+constant expression "\xffff" array of char with dimension of constant expression 9 unsigned int 
+
Index: src/Tests/Output-v/CommentMisc.txt
===================================================================
--- src/Tests/Output-v/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/CommentMisc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+i: signed int 
+i: signed int 
+i: signed int 
+i: signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: array of signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Output-v/Constant0-1.txt
===================================================================
--- src/Tests/Output-v/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Constant0-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,291 @@
+0: signed int 
+0: const signed int 
+0: static const signed int 
+1: signed int 
+1: const signed int 
+1: static const signed int 
+0: signed int 
+1: signed int 
+0: const signed int 
+1: const signed int 
+0: signed int 
+1: signed int 
+0: signed int 
+1: signed int 
+0: static const signed int 
+1: static const signed int 
+struct __anonymous0
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+0: instance of struct __anonymous0 
+struct __anonymous1
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+1: const instance of struct __anonymous1 
+struct __anonymous2
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+1: static const instance of struct __anonymous2 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: pointer to signed int 
+1: pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+0: const pointer to signed int 
+1: const pointer to signed int 
+struct __anonymous3
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+0: pointer to instance of struct __anonymous3 
+x: pointer to signed int 
+0: pointer to signed int 
+x: const pointer to signed int 
+0: const pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+struct __anonymous4
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+0: pointer to instance of struct __anonymous4 
+struct __anonymous5
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous5 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+0: const pointer to instance of struct __anonymous5 
+struct __anonymous6
+    with members
+      i: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+                Member Expression, with field: 
+                  i: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous6 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+0: static const pointer to instance of struct __anonymous6 
+x: static pointer to signed int 
+0: static pointer to signed int 
+x: static const pointer to signed int 
+0: static const pointer to signed int 
+x: const pointer to pointer to signed int 
+0: const pointer to pointer to signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of 1: signed int 
+        Declaration of 0: pointer to signed int 
+        Declaration of x: pointer to signed int 
+        Declaration of 0: pointer to signed int 
+
Index: src/Tests/Output-v/Context.txt
===================================================================
--- src/Tests/Output-v/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Context.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,79 @@
+context has_q
+    with parameters
+      T: type
+
+    with members
+      q: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+f: forall
+      z: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type z (not function type) 
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+          q: pointer to function
+              with parameters
+                instance of type z (not function type) 
+              returning 
+                instance of type z (not function type) 
+
+
+    function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of context has_r
+            with parameters
+              T: type
+              U: type
+
+            with members
+              r: function
+                  with parameters
+                    instance of type T (not function type) 
+                    pointer to function
+                        with parameters
+                          instance of type T (not function type) 
+                          instance of type U (not function type) 
+                        returning 
+                          instance of type T (not function type) 
+
+                  returning 
+                    instance of type T (not function type) 
+
+
+        Declaration of x: auto type
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+        Declaration of y: auto type
+          with assertions
+            instance of context has_r 
+              with parameters
+                instance of type x (not function type) 
+                instance of type y (not function type) 
+
+
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type y (not function type) 
+              _src: instance of type y (not function type) 
+            returning 
+              instance of type y (not function type) 
+
+
Index: src/Tests/Output-v/DeclarationErrors.txt
===================================================================
--- src/Tests/Output-v/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/DeclarationErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-v/DeclarationSpecifier.txt
===================================================================
--- src/Tests/Output-v/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/DeclarationSpecifier.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,14 @@
+Error: invalid combination of storage classes in declaration of x9: static static volatile const short int 
+
+Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
+  with members 
+    i: int 
+
+
+Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
+
Index: src/Tests/Output-v/Enum.txt
===================================================================
--- src/Tests/Output-v/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Enum.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+enum Colors
+    with members
+      Red: const instance of enum Colors 
+      Yellow: const instance of enum Colors 
+      Pink: const instance of enum Colors 
+      Blue: const instance of enum Colors 
+      Purple: const instance of enum Colors 
+      Orange: const instance of enum Colors 
+      Green: const instance of enum Colors 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of enum Fruits
+            with members
+              Apple: const instance of enum Fruits 
+              Banana: const instance of enum Fruits 
+              Pear: const instance of enum Fruits 
+              Mango: const instance of enum Fruits 
+
+        Declaration of fruit: instance of enum Fruits with initializer 
+          Simple Initializer:             Name: Mango
+
+
Index: src/Tests/Output-v/Exception.txt
===================================================================
--- src/Tests/Output-v/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Exception.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,60 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int 
+                  Throw Statement, returning: constant expression 3 signed int 
+
+                  Throw Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Address of:
+      Name: x
+constant expression 5 signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+            and handlers: 
+              Catch Statement
+              ... catching
+i: signed int 
+
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?/?
+                    ...to: 
+                        Name: x
+constant expression 4 signed int 
+            and handlers: 
+              Catch Statement
+              ... catching
+signed int 
+              Catch Statement
+              ... catching
+x: signed int 
+              Catch Statement
+              ... catching
+struct __anonymous0
+              Catch Statement
+              ... catching
+x: instance of struct __anonymous1 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous2 
+              Catch Statement
+              ... catching
+pointer to instance of struct __anonymous3 
+              Catch Statement
+              ... catching
+x: pointer to instance of struct __anonymous4 
+              Catch Statement
+              ... catching
+                  the rest
+
+
Index: src/Tests/Output-v/Expression.txt
===================================================================
--- src/Tests/Output-v/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Expression.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,365 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of struct s
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s 
+              _src: instance of struct s 
+            returning 
+              instance of struct s 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s 
+
+
+
+        Declaration of p: pointer to instance of struct s 
+        Declaration of i: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: !?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ~?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: +?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: -?
+            ...to: 
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: *?
+            ...to: 
+                Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ++?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: --?
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?++
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?--
+            ...to: 
+                Address of:
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?==?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?!=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>=?
+            ...to: 
+                Name: i
+                Name: i
+
+                  Expression Statement:
+            Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: i
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Member Expression, with field: i            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: p
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?-=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?*=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?/=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?%=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?&=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?|=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?^=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?<<=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?>>=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: i
+
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: i
+                    Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: i
+            Second alternative:
+              Name: i
+
+
+
Index: src/Tests/Output-v/Forall.txt
===================================================================
--- src/Tests/Output-v/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Forall.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,731 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to pointer to signed int 
+      pointer to signed int 
+    returning 
+      pointer to signed int 
+
+?=?: function
+    with parameters
+      pointer to pointer to float 
+      pointer to float 
+    returning 
+      pointer to float 
+
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to pointer to function
+          returning 
+            nothing 
+
+      pointer to function
+          returning 
+            nothing 
+
+    returning 
+      pointer to function
+          returning 
+            nothing 
+
+
+g1: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of f: function
+            with parameters
+              signed int 
+            returning 
+              nothing 
+
+        Declaration of h: function
+            with parameters
+              p: pointer to function
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+        Declaration of x: signed int 
+        Declaration of y: pointer to function
+            returning 
+              nothing 
+
+        Declaration of z: char 
+        Declaration of w: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: f
+                ...to: 
+                    Name: y
+
+
+g2: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+              U: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type U (not function type) 
+                        instance of type U (not function type) 
+                      returning 
+                        instance of type U (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+              instance of type U (not function type) 
+            returning 
+              nothing 
+
+        Declaration of x: signed int 
+        Declaration of y: float 
+        Declaration of z: pointer to signed int 
+        Declaration of w: pointer to float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: z
+                Name: w
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: x
+                Name: z
+
+
+swap: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      left: instance of type T (not function type) 
+      right: instance of type T (not function type) 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of temp: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: temp
+                Name: left
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: left
+                Name: right
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: right
+                Name: temp
+
+
+context sumable
+    with parameters
+      T: type
+
+    with members
+      0: const instance of type T (not function type) 
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?++: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+      ?+=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+T1: type
+  with assertions
+    0: const instance of type T1 (not function type) 
+    ?+?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?++: function
+        with parameters
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+    ?+=?: function
+        with parameters
+          instance of type T1 (not function type) 
+          instance of type T1 (not function type) 
+        returning 
+          instance of type T1 (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T1 (not function type) 
+      _src: instance of type T1 (not function type) 
+    returning 
+      instance of type T1 (not function type) 
+
+T2: type
+  with parameters
+    P1: type
+    P2: type
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+
+T3: type
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T3 (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T3 (not function type) 
+      _src: instance of type T3 (not function type) 
+    returning 
+      instance of type T3 (not function type) 
+
+struct __anonymous0
+    with members
+      i: instance of type P1 (not function type) 
+      j: instance of type P2 (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type P1 (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  i: instance of type P1 (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    j: instance of type P2 (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  j: instance of type P2 (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+T2: type for instance of struct __anonymous0 
+  with parameters
+    P1: type
+    P2: type
+
+  with assertions
+    instance of context sumable 
+      with parameters
+        instance of type T2 (not function type) 
+          with parameters
+            instance of type P1 (not function type) 
+            instance of type P2 (not function type) 
+
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type T2 (not function type) 
+      _src: instance of type T2 (not function type) 
+    returning 
+      instance of type T2 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type T2 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type T2 (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+w1: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+g2: instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+w3: type for instance of type T2 (not function type) 
+  with parameters
+    signed int 
+    signed int 
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type w3 (not function type) 
+      _src: instance of type w3 (not function type) 
+    returning 
+      instance of type w3 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type w3 (not function type) 
+
+    to:
+      pointer to instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+    Cast of:
+      Variable Expression: _src: instance of type w3 (not function type) 
+
+    to:
+      instance of type T2 (not function type) 
+        with parameters
+          signed int 
+          signed int 
+
+
+
+
+g3: instance of type w3 (not function type) 
+sum: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      n: signed int 
+      a: pointer to instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+        Declaration of total: instance of type T (not function type) with initializer 
+          Simple Initializer:             Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: total
+                Name: 0
+
+        Declaration of i: signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: n
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: total
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Name: total
+                        Applying untyped: 
+                            Name: ?[?]
+                        ...to: 
+                            Name: a
+                            Name: i
+
+
+                  Return Statement, returning: Name: total
+
+
+
+twice: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?+?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?++: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?+=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?+?
+...to: 
+    Name: t
+    Name: t
+
+
+
+min: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          0: const instance of type T (not function type) 
+          ?!=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      t1: instance of type T (not function type) 
+      t2: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Conditional expression on: 
+  Cast of:
+    Applying untyped: 
+        Name: ?!=?
+    ...to: 
+        Applying untyped: 
+            Name: ?<?
+        ...to: 
+            Name: t1
+            Name: t2
+        Name: 0
+
+  to:
+    signed int 
+First alternative:
+  Name: t1
+Second alternative:
+  Name: t2
+
+
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of x: signed int with initializer 
+          Simple Initializer:             Name: 1
+
+        Declaration of y: signed int with initializer 
+          Simple Initializer: constant expression 2 signed int 
+        Declaration of a: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: swap
+            ...to: 
+                Name: x
+                Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: twice
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: f
+                Applying untyped: 
+                    Name: min
+                ...to: 
+constant expression 4.0 double constant expression 3.0 double 
+                  Expression Statement:
+            Applying untyped: 
+                Name: sum
+            ...to: 
+constant expression 10 signed int                 Name: a
+
+
Index: src/Tests/Output-v/Function.txt
===================================================================
--- src/Tests/Output-v/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Function.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,126 @@
+a: signed int 
+a: float 
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      float 
+    returning 
+      float 
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Cast of:
+                  Name: a
+
+                to:
+                  signed int 
+
+                  Expression Statement:
+            Cast of:
+              Applying untyped: 
+                  Name: f
+              ...to: 
+                  Name: a
+
+            to:
+              signed int 
+
+
+p: tuple of types
+    signed int 
+
+p: tuple of types
+    signed int 
+    double 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+
+p: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+q: tuple of types
+    char 
+
+q: tuple of types
+    signed int 
+    signed int 
+
+q: tuple of types
+    signed int 
+    signed int 
+    float 
+
+q: tuple of types
+    signed int 
+    signed int 
+    signed int 
+    signed int 
+
+r: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+      signed int 
+
+s: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Name: p
+                Name: q
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Tuple:
+                                      Name: q
+
+                                      Name: p
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: r
+            ...to: 
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: p
+                    Name: q
+                Applying untyped: 
+                    Name: r
+                ...to: 
+                    Name: q
+                    Name: q
+
+
Index: src/Tests/Output-v/Functions.txt
===================================================================
--- src/Tests/Output-v/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Functions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,681 @@
+h: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      pointer to function
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      g: pointer to function
+          returning 
+            nothing 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Applying untyped: 
+                    Name: *?
+                ...to: 
+                    Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: g
+                Name: h
+
+
+f1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f3: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f4: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f5: function
+      accepting unspecified arguments
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+    with body 
+      CompoundStmt
+
+f6: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f7: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+f8: function
+      accepting unspecified arguments
+    returning 
+      pointer to pointer to signed int 
+    with body 
+      CompoundStmt
+
+f9: function
+      accepting unspecified arguments
+    returning 
+      pointer to const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f10: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+f12: function
+      accepting unspecified arguments
+    returning 
+      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
+    with body 
+      CompoundStmt
+
+fII1: function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII2: function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII3: auto function
+    with parameters
+      i: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+fII4: auto function
+    with parameters
+      i: signed int 
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+fII5: function
+      accepting unspecified arguments
+    returning 
+      pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII6: function
+      accepting unspecified arguments
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+fII7: function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII8: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fII9: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const long signed int 
+    with body 
+      CompoundStmt
+
+fO1: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO2: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO3: function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO4: auto function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+fO5: auto function
+      accepting unspecified arguments
+    returning 
+      const signed int 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      nothing 
+
+f: function
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      x: signed int 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+
+f: function
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      x: signed int 
+    returning 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+    returning 
+      signed int 
+      x: signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      signed int 
+    returning 
+      signed int 
+      x: signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+
+f: function
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    returning 
+      signed int 
+      x: signed int 
+      y: pointer to signed int 
+    with body 
+      CompoundStmt
+
+f11: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f12: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      pointer to function
+          with parameters
+            signed int 
+            p: signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
+        Declaration of p: pointer to open array of pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+
+f1: static function
+      accepting unspecified arguments
+    returning 
+      pointer to const signed int 
+    with body 
+      CompoundStmt
+
+f2: static function
+    returning 
+      const signed int 
+    with body 
+      CompoundStmt
+
+f3: inline static function
+    returning 
+      const pointer to signed int 
+    with body 
+      CompoundStmt
+
+f4: inline static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+
+f5: static function
+    returning 
+      const tuple of types
+          pointer to signed int 
+          const signed int 
+
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      pointer to signed int 
+      pointer to array of constant expression 10 signed int signed int 
+      pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to signed int 
+      pointer to pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      pointer to pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      pointer to const pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+    returning 
+      signed int 
+
+f: function
+    with parameters
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            const pointer to const pointer to signed int 
+
+      pointer to signed int 
+      pointer to array of constant expression 10 signed int signed int 
+      pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to signed int 
+      pointer to pointer to pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      pointer to pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      pointer to const pointer to const pointer to signed int 
+      pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f: function
+    with parameters
+      f: pointer to signed int 
+      t: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of T: signed int 
+
Index: src/Tests/Output-v/GccExtensions.txt
===================================================================
--- src/Tests/Output-v/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/GccExtensions.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,147 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c1: double _Complex 
+        Declaration of c2: double _Complex 
+        Declaration of i1: const signed int 
+        Declaration of i2: const signed int 
+        Declaration of i3: const signed int 
+        Declaration of ex: const signed int 
+        Declaration of f1: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of f2: inline function
+              accepting unspecified arguments
+            returning 
+              signed int 
+
+        Declaration of s1: signed int 
+        Declaration of s2: signed int 
+        Declaration of t1: type-of expression           Name: s1
+
+        Declaration of t2: type-of expression           Name: s1
+
+        Declaration of v1: volatile signed int 
+        Declaration of v2: volatile signed int 
+        Declaration of a1: signed int 
+        Declaration of a2: const signed int 
+        Declaration of a3: static const signed int 
+        Declaration of a4: static const signed int 
+        Declaration of a5: static const signed int 
+        Declaration of a6: static const signed int 
+        Declaration of a7: static const signed int 
+        Declaration of p1: pointer to signed int 
+        Declaration of p2: pointer to signed int 
+        Declaration of struct s1
+        Declaration of struct s2
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s2 
+              _src: instance of struct s2 
+            returning 
+              instance of struct s2 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s2 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s2 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s2 
+
+
+
+        Declaration of struct s3
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s3 
+              _src: instance of struct s3 
+            returning 
+              instance of struct s3 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s3 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s3 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s3 
+
+
+
+        Declaration of x1: instance of struct s3 
+        Declaration of y1: instance of struct s3 
+        Declaration of struct s4
+            with members
+              i: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct s4 
+              _src: instance of struct s4 
+            returning 
+              instance of struct s4 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            i: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct s4 
+                        Member Expression, with field: 
+                          i: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct s4 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct s4 
+
+
+
+        Declaration of x2: instance of struct s4 
+        Declaration of y2: instance of struct s4 
+        Declaration of m1: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of m2: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+        Declaration of m3: array of array of signed int with dimension of constant expression 10 signed int with dimension of constant expression 10 signed int 
+
Index: src/Tests/Output-v/IdentFuncDeclarator.txt
===================================================================
--- src/Tests/Output-v/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/IdentFuncDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,185 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Output-v/IdentFuncParamDeclarator.txt
===================================================================
--- src/Tests/Output-v/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/IdentFuncParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,221 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f2: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f7: pointer to signed int 
+      f8: pointer to pointer to signed int 
+      f9: pointer to const pointer to signed int 
+      f10: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f17: pointer to signed int 
+      f18: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f27: pointer to pointer to signed int 
+      f28: pointer to array of constant expression 10 signed int pointer to signed int 
+      f29: pointer to pointer to pointer to signed int 
+      f30: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f31: pointer to pointer to const pointer to signed int 
+      f32: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f33: pointer to const pointer to const pointer to signed int 
+      f34: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f45: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f46: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f47: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f48: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f66: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f71: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f72: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f73: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f74: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      f86: const pointer to variable length array of signed int 
+      f87: const pointer to array of constant expression 3 signed int signed int 
+      f88: pointer to static array of constant expression 3 signed int signed int 
+      f89: const pointer to static array of constant expression 3 signed int signed int 
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f95: const pointer to variable length array of pointer to signed int 
+      f96: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f97: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f98: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f99: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f104: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f105: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f106: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f107: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f113: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f114: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f115: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f116: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f117: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Output-v/InferParam.txt
===================================================================
--- src/Tests/Output-v/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/InferParam.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,173 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: function
+    with parameters
+      pointer to double 
+      double 
+    returning 
+      double 
+
+g: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      float 
+
+f: function
+    with parameters
+      signed int 
+    returning 
+      double 
+
+i: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: g
+                ...to: 
+                    Name: a
+
+
+context has_f_and_j
+    with parameters
+      T: type
+      U: type
+
+    with members
+      f: function
+          with parameters
+            instance of type T (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+      j: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type U (not function type) 
+          returning 
+            instance of type U (not function type) 
+
+
+j: function
+    with parameters
+      signed int 
+      float 
+    returning 
+      float 
+
+k: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          f: pointer to function
+              with parameters
+                instance of type T (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          j: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      instance of type T (not function type) 
+    returning 
+      instance of type U (not function type) 
+
+l: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: i
+            ...to: 
+                Applying untyped: 
+                    Name: k
+                ...to: 
+                    Name: b
+
+
Index: src/Tests/Output-v/Initialization.txt
===================================================================
--- src/Tests/Output-v/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Initialization.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,669 @@
+x11: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x12: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x21: pointer to signed int with initializer 
+  Simple Initializer:     Name: 0
+
+x22: signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y1: array of signed int with dimension of constant expression 20 signed int 
+y2: array of signed int with dimension of constant expression 20 signed int 
+struct __anonymous0
+    with members
+      w: tuple of types
+          signed int 
+
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    w: tuple of types
+                      signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  w: tuple of types
+                    signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+a: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer:       Tuple:
+        constant expression 2 signed int 
+
+      designated by:         Name: w
+
+struct __anonymous1
+    with members
+      a: array of signed int with dimension of constant expression 3 signed int 
+      b: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+        Declaration of _index0: C signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Variable Expression: _index0: signed int 
+                    Name: 0
+
+            condition: 
+              Applying untyped: 
+                  Name: ?<?
+              ...to: 
+                  Variable Expression: _index0: signed int 
+constant expression 3 signed int 
+            increment: 
+              Applying untyped: 
+                  Name: ++?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index0: signed int 
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Member Expression, with field: 
+                          a: array of signed int with dimension of constant expression 3 signed int 
+                        from aggregate: 
+                          Applying untyped: 
+                              Name: *?
+                          ...to: 
+                              Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                        Variable Expression: _index0: signed int 
+                    Applying untyped: 
+                        Name: ?[?]
+                    ...to: 
+                        Member Expression, with field: 
+                          a: array of signed int with dimension of constant expression 3 signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous1 
+                        Variable Expression: _index0: signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    b: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+w: open array of instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: 0
+        Name: a
+      ]
+      Simple Initializer:         Name: 1
+
+    Simple Initializer:       Name: 1
+
+      designated by:         Name: 0
+        Name: b
+
+    Simple Initializer: constant expression 2 signed int 
+      designated by:         Name: 1
+        Name: a
+        Name: 0
+
+struct __anonymous2
+    with members
+      g1: signed int 
+      g2: signed int 
+      g3: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    g1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  g1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    g2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  g2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    g3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  g3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+struct __anonymous3
+    with members
+      f1: signed int 
+      f2: signed int 
+      f3: signed int 
+      f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+        Declaration of _index1: C signed int 
+                  Labels: {}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Variable Expression: _index1: signed int 
+                    Name: 0
+
+            condition: 
+              Applying untyped: 
+                  Name: ?<?
+              ...to: 
+                  Variable Expression: _index1: signed int 
+constant expression 4 signed int 
+            increment: 
+              Applying untyped: 
+                  Name: ++?
+              ...to: 
+                  Address of:
+                    Variable Expression: _index1: signed int 
+
+            statement block: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?+?
+                    ...to: 
+                        Member Expression, with field: 
+                          f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+                        from aggregate: 
+                          Applying untyped: 
+                              Name: *?
+                          ...to: 
+                              Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                        Variable Expression: _index1: signed int 
+                    Applying untyped: 
+                        Name: ?[?]
+                    ...to: 
+                        Member Expression, with field: 
+                          f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous3 
+                        Variable Expression: _index1: signed int 
+
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+v7: instance of struct __anonymous3 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: f1
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: f2
+
+    Compound initializer:        designated by: [        Name: f4
+constant expression 2 signed int       ]
+      Simple Initializer: constant expression 3 signed int 
+        designated by:           Name: g1
+
+      Simple Initializer:         Name: 0
+
+        designated by:           Name: g3
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: f4
+constant expression 3 signed int         Name: g3
+
+struct __anonymous4
+    with members
+      y1: signed int 
+      y2: signed int 
+      y3: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+struct point
+    with members
+      x: signed int 
+      z: signed int 
+      y: instance of struct __anonymous4 
+      w: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct point 
+      _src: instance of struct point 
+    returning 
+      instance of struct point 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    z: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous4 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous4 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    w: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct point 
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct point 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct point 
+
+
+
+struct quintet
+    with members
+      v: signed int 
+      w: signed int 
+      x: signed int 
+      y: signed int 
+      z: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct quintet 
+      _src: instance of struct quintet 
+    returning 
+      instance of struct quintet 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    v: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  v: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    w: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  w: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    z: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct quintet 
+                Member Expression, with field: 
+                  z: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct quintet 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct quintet 
+
+
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p1: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+              designated by:                 Name: x
+
+        Declaration of p2: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 3 signed int 
+            Simple Initializer: constant expression 4 signed int 
+        Declaration of p3: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: x
+                Name: z
+
+            Compound initializer:                designated by: [                Name: y
+              ]
+              Simple Initializer: constant expression 6 signed int 
+                designated by:                   Name: y3
+                  Name: y1
+
+              Simple Initializer: constant expression 17 signed int 
+        Declaration of p4: instance of struct point with initializer 
+          Compound initializer:  
+            Simple Initializer: constant expression 5 signed int 
+              designated by:                 Name: w
+
+            Simple Initializer: constant expression 4 signed int 
+
Index: src/Tests/Output-v/Initialization2.txt
===================================================================
--- src/Tests/Output-v/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Initialization2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,740 @@
+a: signed int with initializer 
+  Simple Initializer: constant expression 3 signed int 
+struct __anonymous0
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+z: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Simple Initializer: constant expression 7 signed int 
+struct __anonymous1
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+z1: instance of struct __anonymous1 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+        Name: y
+
+struct __anonymous2
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous2 
+      _src: instance of struct __anonymous2 
+    returning 
+      instance of struct __anonymous2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous2 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous2 
+
+
+
+z2: instance of struct __anonymous2 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: y
+
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: x
+
+struct __anonymous3
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous3 
+      _src: instance of struct __anonymous3 
+    returning 
+      instance of struct __anonymous3 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous3 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous3 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous3 
+
+
+
+struct __anonymous4
+    with members
+      x: signed int 
+      y: instance of struct __anonymous3 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous4 
+      _src: instance of struct __anonymous4 
+    returning 
+      instance of struct __anonymous4 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous3 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous4 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous3 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous4 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous4 
+
+
+
+z3: instance of struct __anonymous4 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: x
+
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 4 signed int 
+        designated by:           Name: y1
+
+      Simple Initializer: constant expression 5 signed int 
+        designated by:           Name: y2
+
+struct __anonymous5
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous5 
+      _src: instance of struct __anonymous5 
+    returning 
+      instance of struct __anonymous5 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous5 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous5 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous5 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous5 
+
+
+
+struct __anonymous6
+    with members
+      x: signed int 
+      y: instance of struct __anonymous5 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous6 
+      _src: instance of struct __anonymous6 
+    returning 
+      instance of struct __anonymous6 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous6 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous5 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous6 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous5 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous6 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous6 
+
+
+
+z3: instance of struct __anonymous6 with initializer 
+  Compound initializer:  
+    Compound initializer:        designated by: [        Name: y
+      ]
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+struct __anonymous7
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous7 
+      _src: instance of struct __anonymous7 
+    returning 
+      instance of struct __anonymous7 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous7 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous7 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous7 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous7 
+
+
+
+struct __anonymous8
+    with members
+      x: signed int 
+      y: instance of struct __anonymous7 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous8 
+      _src: instance of struct __anonymous8 
+    returning 
+      instance of struct __anonymous8 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous8 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous7 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous8 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous7 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous8 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous8 
+
+
+
+z3: instance of struct __anonymous8 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 7 signed int 
+      designated by:         Name: x
+
+    Compound initializer:  
+      Simple Initializer: constant expression 9 signed int 
+        designated by:           Name: y2
+
+      Simple Initializer: constant expression 8 signed int 
+        designated by:           Name: y1
+
+struct __anonymous9
+    with members
+      y1: signed int 
+      y2: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous9 
+      _src: instance of struct __anonymous9 
+    returning 
+      instance of struct __anonymous9 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+                Member Expression, with field: 
+                  y1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous9 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous9 
+                Member Expression, with field: 
+                  y2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous9 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous9 
+
+
+
+struct __anonymous10
+    with members
+      x: signed int 
+      y: instance of struct __anonymous9 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous10 
+      _src: instance of struct __anonymous10 
+    returning 
+      instance of struct __anonymous10 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous10 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: instance of struct __anonymous9 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous10 
+                Member Expression, with field: 
+                  y: instance of struct __anonymous9 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous10 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous10 
+
+
+
+z3: instance of struct __anonymous10 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+    Compound initializer:  
+      Simple Initializer: constant expression 4 signed int 
+      Simple Initializer: constant expression 5 signed int 
+struct t
+    with members
+      a: signed int 
+      b: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct t 
+      _src: instance of struct t 
+    returning 
+      instance of struct t 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct t 
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct t 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    b: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct t 
+                Member Expression, with field: 
+                  b: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct t 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct t 
+
+
+
+x: instance of struct t with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 4 signed int 
+      designated by:         Name: b
+
+    Simple Initializer: constant expression 3 signed int 
+      designated by:         Name: a
+
+struct __anonymous11
+    with members
+      x: signed int 
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous11 
+      _src: instance of struct __anonymous11 
+    returning 
+      instance of struct __anonymous11 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    x: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+                Member Expression, with field: 
+                  x: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous11 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous11 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous11 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous11 
+
+
+
+z6: instance of struct __anonymous11 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 5 signed int 
+    Simple Initializer: constant expression 6 signed int 
+    Simple Initializer: constant expression 4 signed int 
Index: src/Tests/Output-v/LabelledExit.txt
===================================================================
--- src/Tests/Output-v/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/LabelledExit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,743 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+        Declaration of x: signed int 
+        Declaration of y: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: y
+                Name: 0
+
+                  CompoundStmt
+                          If on condition: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?==?
+                        ...to: 
+                            Name: x
+                            Name: y
+                        Name: 0
+
+                  to:
+                    signed int 
+              .... and branches: 
+                  CompoundStmt
+                                          Labels: {}
+                      For Statement
+                        initialization: 
+
+                        condition: 
+                          Cast of:
+                            Applying untyped: 
+                                Name: ?!=?
+                            ...to: 
+                                Applying untyped: 
+                                    Name: ?<?
+                                ...to: 
+                                    Name: i
+                                    Name: y
+                                Name: 0
+
+                          to:
+                            signed int 
+
+                        increment: 
+
+                        statement block: 
+                          CompoundStmt
+                                                          Expression Statement:
+                                Applying untyped: 
+                                    Name: ?+=?
+                                ...to: 
+                                    Address of:
+                                      Name: y
+                                    Name: 1
+
+                                                          If on condition: 
+                                  Cast of:
+                                    Applying untyped: 
+                                        Name: ?!=?
+                                    ...to: 
+                                        Applying untyped: 
+                                            Name: ?<?
+                                        ...to: 
+                                            Name: y
+constant expression 10 signed int                                         Name: 0
+
+                                  to:
+                                    signed int 
+                              .... and branches: 
+                                  Branch (Break)
+
+
+
+
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Name: y
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              Null Statement
+
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: x
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: y
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                                                  If on condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?==?
+                                    ...to: 
+                                        Name: y
+constant expression 3 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+                          .... and branches: 
+                              Branch (Break)
+
+
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: x
+                        Name: 1
+
+
+                  Labels: {A,}
+          For Statement
+            initialization: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 0
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+constant expression 10 signed int                     Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {B,}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: i
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 10 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?+=?
+                      ...to: 
+                          Address of:
+                            Name: i
+                          Name: 1
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {C,}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Applying untyped: 
+                                    Name: ?=?
+                                ...to: 
+                                    Address of:
+                                      Name: i
+                                    Name: 0
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Applying untyped: 
+                                        Name: ?<?
+                                    ...to: 
+                                        Name: i
+constant expression 10 signed int                                     Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Applying untyped: 
+                                  Name: ?+=?
+                              ...to: 
+                                  Address of:
+                                    Name: i
+                                  Name: 1
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Goto)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Continue)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {D,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+                                  Branch (Continue)
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+=?
+            ...to: 
+                Address of:
+                  Name: i
+                Name: 1
+
+                  Branch (Goto)
+
+                  Labels: {X,Y,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Continue)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  If on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: i
+constant expression 5 signed int                             Name: 0
+
+                      to:
+                        signed int 
+                  .... and branches: 
+                      Branch (Break)
+
+                                  Branch (Break)
+
+
+
+                  Labels: {XX,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Labels: {YY,}
+                  For Statement
+                    initialization: 
+
+                    condition: 
+
+                    increment: 
+
+                    statement block: 
+                      CompoundStmt
+                                                  Labels: {ZZ,}
+                          For Statement
+                            initialization: 
+
+                            condition: 
+
+                            increment: 
+
+                            statement block: 
+                              CompoundStmt
+                                                                  Expression Statement:
+                                    Applying untyped: 
+                                        Name: ?+=?
+                                    ...to: 
+                                        Address of:
+                                          Name: i
+                                        Name: 1
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Continue)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?>?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  If on condition: 
+                                      Cast of:
+                                        Applying untyped: 
+                                            Name: ?!=?
+                                        ...to: 
+                                            Applying untyped: 
+                                                Name: ?<?
+                                            ...to: 
+                                                Name: i
+constant expression 5 signed int                                             Name: 0
+
+                                      to:
+                                        signed int 
+                                  .... and branches: 
+                                      Branch (Break)
+
+                                                                  Branch (Break)
+
+
+
+
+
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+Declaration of i: signed int with initializer 
+              Simple Initializer:                 Name: 0
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Name: i
+                        Name: 0
+                    Name: 0
+
+              to:
+                signed int 
+
+            increment: 
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+              Applying untyped: 
+                  Name: ?+=?
+              ...to: 
+                  Address of:
+                    Name: i
+                  Name: 1
+
+            statement block: 
+              Null Statement
+
+
+                  Labels: {L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20,L21,L22,L23,L24,L25,L26,L27,L28,L29,L31,L32,L33,L34,}
+          For Statement
+            initialization: 
+
+            condition: 
+
+            increment: 
+
+            statement block: 
+              CompoundStmt
+                                  Branch (Break)
+
+
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Switch on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+              Case Name: 0
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+                  Branch (Break)
+              Case Name: 1
+
+                  Choose on condition: Name: i
+
+                      Case Name: 0
+
+                          Branch (Break)
+                      Default 
+                          Branch (Break)
+                  Fall-through statement
+              Case constant expression 2 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  CompoundStmt
+            Declaration of array: static open array of pointer to void with initializer 
+              Compound initializer:  
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: foo
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: bar
+
+                Simple Initializer:                   Applying untyped: 
+                      Name: LabAddress
+                  ...to: 
+                      Name: hack
+
+                          Branch (Goto)
+
+
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: i
+constant expression 5 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                                  Branch (Break)
+
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?+=?
+                ...to: 
+                    Address of:
+                      Name: i
+                    Name: 1
+
+
Index: src/Tests/Output-v/Members.txt
===================================================================
--- src/Tests/Output-v/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Members.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,383 @@
+?=?: function
+    with parameters
+      pointer to char 
+      char 
+    returning 
+      char 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to float 
+      float 
+    returning 
+      float 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+*?: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type T (not function type) 
+    returning 
+      lvalue instance of type T (not function type) 
+
+__builtin_memcpy: function
+      accepting unspecified arguments
+    returning 
+      pointer to char 
+
+a: function
+    with parameters
+      char 
+    returning 
+      nothing 
+
+b: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+c: function
+    with parameters
+      pointer to signed int 
+    returning 
+      nothing 
+
+d: function
+    with parameters
+      pointer to float 
+    returning 
+      nothing 
+
+struct a_struct
+    with members
+      a: signed int 
+      a: char 
+      a: float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct a_struct 
+      _src: instance of struct a_struct 
+    returning 
+      instance of struct a_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+                Member Expression, with field: 
+                  a: char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct a_struct 
+                Member Expression, with field: 
+                  a: float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct a_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct a_struct 
+
+
+
+union b_struct
+    with members
+      a: pointer to signed int 
+      a: pointer to char 
+      a: pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union b_struct 
+      _src: instance of union b_struct 
+    returning 
+      instance of union b_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: __builtin_memcpy
+            ...to: 
+                Variable Expression: _dst: pointer to instance of union b_struct 
+                Address of:
+                  Variable Expression: _src: instance of union b_struct 
+                Sizeof Expression on: instance of union b_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of union b_struct 
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of the_struct: instance of struct a_struct 
+        Declaration of the_struct: instance of union b_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Member Expression, with field: a                from aggregate:                   Name: the_struct
+
+
+struct c_struct
+    with members
+      signed int 
+      char 
+      float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct c_struct 
+      _src: instance of struct c_struct 
+    returning 
+      instance of struct c_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    char 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+                Member Expression, with field: 
+                  char 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    float 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct c_struct 
+                Member Expression, with field: 
+                  float 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct c_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct c_struct 
+
+
+
+union d_struct
+    with members
+      pointer to signed int 
+      pointer to char 
+      pointer to float 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union d_struct 
+      _src: instance of union d_struct 
+    returning 
+      instance of union d_struct 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: __builtin_memcpy
+            ...to: 
+                Variable Expression: _dst: pointer to instance of union d_struct 
+                Address of:
+                  Variable Expression: _src: instance of union d_struct 
+                Sizeof Expression on: instance of union d_struct 
+
+                  Return Statement, returning: Variable Expression: _src: instance of union d_struct 
+
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of x: short unsigned int 
+        Declaration of x: instance of struct c_struct 
+        Declaration of x: instance of union d_struct 
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: b
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: c
+            ...to: 
+                Name: x
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: d
+            ...to: 
+                Name: x
+
+
+struct forward
+q: pointer to instance of struct forward 
+struct forward
+    with members
+      y: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct forward 
+      _src: instance of struct forward 
+    returning 
+      instance of struct forward 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    y: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct forward 
+                Member Expression, with field: 
+                  y: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct forward 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct forward 
+
+
+
+h: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Member Expression, with field: y            from aggregate:               Applying untyped: 
+                  Name: *?
+              ...to: 
+                  Name: q
+
+
Index: src/Tests/Output-v/Misc.txt
===================================================================
--- src/Tests/Output-v/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Misc.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,55 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      unsigned int 
+    returning 
+      nothing 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on:                   Name: a
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Sizeof Expression on: signed int 
+
+
Index: src/Tests/Output-v/MiscError.txt
===================================================================
--- src/Tests/Output-v/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/MiscError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,52 @@
+a: signed int 
+b: signed int 
+b: float 
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Name: b
+
+                  Name: a
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: b
+
+                    Name: a
+
+                  Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Comma Expression:
+                  Comma Expression:
+                    Name: a
+
+                    Name: b
+
+                  Name: b
+
+                  Expression Statement:
+            Sizeof Expression on:               Name: b
+
+
+
Index: src/Tests/Output-v/NamedParmArg.txt
===================================================================
--- src/Tests/Output-v/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/NamedParmArg.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,94 @@
+f1: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int with initializer 
+        Simple Initializer:           Name: 0
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
+f2: function
+    with parameters
+      i: signed int with initializer 
+        Simple Initializer: constant expression 3 signed int 
+      j: pointer to signed int 
+    returning 
+      signed int 
+      signed int 
+    with body 
+      CompoundStmt
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+constant expression 3 signed int                 with designator:                  Name: i
+                Name: 0
+                with designator:                  Name: j
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Name: 0
+                with designator:                  Name: j
+constant expression 3 signed int                 with designator:                  Name: i
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f1
+            ...to: 
+                Applying untyped: 
+                    Name: f2
+                ...to: 
+                with designator:                  Tuple:
+                                          Name: j
+
+                                          Name: i
+
+
+
Index: src/Tests/Output-v/NumericConstants.txt
===================================================================
--- src/Tests/Output-v/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/NumericConstants.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,88 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Name: 1
+
+                  Expression Statement:
+constant expression 21 signed int 
+                  Expression Statement:
+constant expression 2147483647 signed int 
+                  Expression Statement:
+constant expression 37LL long long signed int 
+                  Expression Statement:
+constant expression 45ull long long unsigned int 
+                  Expression Statement:
+constant expression 89llu long long unsigned int 
+                  Expression Statement:
+constant expression 99LLu long long unsigned int 
+                  Expression Statement:
+constant expression 56lu long unsigned int 
+                  Expression Statement:
+constant expression 88LLu long long unsigned int 
+                  Expression Statement:
+constant expression 0u unsigned int 
+                  Expression Statement:
+constant expression 0377 signed int 
+                  Expression Statement:
+constant expression 0377ul long unsigned int 
+                  Expression Statement:
+constant expression 0x1 signed int 
+                  Expression Statement:
+constant expression 0x1u unsigned int 
+                  Expression Statement:
+constant expression 0xabL long signed int 
+                  Expression Statement:
+constant expression 0x80000000 unsigned int 
+                  Expression Statement:
+constant expression 0xfff signed int 
+                  Expression Statement:
+constant expression 0xef3daa5c unsigned int 
+                  Expression Statement:
+constant expression 0x3LL long long signed int 
+                  Expression Statement:
+constant expression 3. double 
+                  Expression Statement:
+constant expression 3100. double 
+                  Expression Statement:
+constant expression 1000000. double 
+                  Expression Statement:
+constant expression 3.1 double 
+                  Expression Statement:
+constant expression 3.141592654L long double 
+                  Expression Statement:
+constant expression 123456.123456 double 
+                  Expression Statement:
+constant expression 3E1 double 
+                  Expression Statement:
+constant expression 3e1f float 
+                  Expression Statement:
+constant expression 3E11F float 
+                  Expression Statement:
+constant expression 3E11 double 
+                  Expression Statement:
+constant expression 3e+11 double 
+                  Expression Statement:
+constant expression 3E-11 double 
+                  Expression Statement:
+constant expression 3.0E1 double 
+                  Expression Statement:
+constant expression 3.0E1L long double 
+                  Expression Statement:
+constant expression 3.0e11 double 
+                  Expression Statement:
+constant expression 3.0E11l long double 
+                  Expression Statement:
+constant expression 3.0e+11l long double 
+                  Expression Statement:
+constant expression 3.0E-11 double 
+                  Expression Statement:
+constant expression 123456.123456E-16 double 
+                  Expression Statement:
+constant expression 0xff.ffp0 double 
+                  Expression Statement:
+constant expression 0x1.ffffffffp128l long double 
+
Index: src/Tests/Output-v/OccursError.txt
===================================================================
--- src/Tests/Output-v/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/OccursError.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,54 @@
+f: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      pointer to function
+          with parameters
+            instance of type T (not function type) 
+            pointer to instance of type T (not function type) 
+          returning 
+            nothing 
+
+    returning 
+      nothing 
+
+g: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      pointer to instance of type U (not function type) 
+      instance of type U (not function type) 
+    returning 
+      nothing 
+
+test: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: g
+
+
Index: src/Tests/Output-v/Operators.txt
===================================================================
--- src/Tests/Output-v/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Operators.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,114 @@
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?(): function
+    with parameters
+      number1: signed int 
+      number2: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: number1
+    Name: number2
+
+
+
+?+?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+struct accumulator
+    with members
+      total: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct accumulator 
+      _src: instance of struct accumulator 
+    returning 
+      instance of struct accumulator 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    total: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct accumulator 
+                Member Expression, with field: 
+                  total: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct accumulator 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct accumulator 
+
+
+
+?(): function
+    with parameters
+      a: instance of struct accumulator 
+      number1: char 
+      number2: char 
+    returning 
+      char 
+
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: char 
+        Declaration of b: char 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?()
+            ...to: 
+                Name: a
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: a
+            ...to: 
+                Name: b
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+        Declaration of ?+?: instance of struct accumulator 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?+?
+            ...to: 
+                Name: a
+                Name: b
+
+
Index: src/Tests/Output-v/Quad.txt
===================================================================
--- src/Tests/Output-v/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Quad.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?*?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+square: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?*?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      t: instance of type T (not function type) 
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?*?
+...to: 
+    Name: t
+    Name: t
+
+
+
+quad: forall
+      U: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type U (not function type) 
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+          square: pointer to function
+              with parameters
+                instance of type U (not function type) 
+              returning 
+                instance of type U (not function type) 
+
+
+    function
+    with parameters
+      u: instance of type U (not function type) 
+    returning 
+      instance of type U (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: square
+...to: 
+    Applying untyped: 
+        Name: square
+    ...to: 
+        Name: u
+
+
+
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: quad
+            ...to: 
+constant expression 7 signed int 
+
Index: src/Tests/Output-v/Rank2.txt
===================================================================
--- src/Tests/Output-v/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Rank2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,117 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?=?: forall
+      DT: incomplete type
+    function
+    with parameters
+      pointer to pointer to instance of type DT (not function type) 
+      pointer to instance of type DT (not function type) 
+    returning 
+      pointer to instance of type DT (not function type) 
+
+a: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of f: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              nothing 
+
+        Declaration of g: function
+            with parameters
+              p: pointer to forall
+                    U: type
+                      with assertions
+                        ?=?: pointer to function
+                            with parameters
+                              pointer to instance of type U (not function type) 
+                              instance of type U (not function type) 
+                            returning 
+                              instance of type U (not function type) 
+
+
+                  function
+                  with parameters
+                    instance of type U (not function type) 
+                  returning 
+                    nothing 
+
+            returning 
+              nothing 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: f
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of h: function
+            with parameters
+              null: pointer to signed int 
+            returning 
+              nothing 
+
+        Declaration of id: forall
+              T: type
+                with assertions
+                  ?=?: pointer to function
+                      with parameters
+                        pointer to instance of type T (not function type) 
+                        instance of type T (not function type) 
+                      returning 
+                        instance of type T (not function type) 
+
+
+            function
+            with parameters
+              instance of type T (not function type) 
+            returning 
+              instance of type T (not function type) 
+
+        Declaration of 0: forall
+              T: incomplete type
+            pointer to instance of type T (not function type) 
+        Declaration of 0: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: h
+            ...to: 
+                Applying untyped: 
+                    Name: id
+                ...to: 
+                    Applying untyped: 
+                        Name: id
+                    ...to: 
+                        Applying untyped: 
+                            Name: id
+                        ...to: 
+                            Name: 0
+
+
Index: src/Tests/Output-v/Scope.txt
===================================================================
--- src/Tests/Output-v/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Scope.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,282 @@
+x: signed int 
+z: double 
+struct __anonymous0
+    with members
+      a: signed int 
+      b: double 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    a: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  a: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    b: double 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  b: double 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+u: type for instance of struct __anonymous0 
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type u (not function type) 
+      _src: instance of type u (not function type) 
+    returning 
+      instance of type u (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type u (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type u (not function type) 
+
+    to:
+      instance of struct __anonymous0 
+
+
+
+f: function
+    with parameters
+      y: signed int 
+    returning 
+      signed int 
+
+q: double 
+w: function
+    with parameters
+      y: double 
+      v: instance of type u (not function type) 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of x: type
+          with assertions
+            t: function
+                with parameters
+                  instance of type u (not function type) 
+                returning 
+                  instance of type x (not function type) 
+
+
+        Declaration of ?=?: automatically generated function
+            with parameters
+              _dst: pointer to instance of type x (not function type) 
+              _src: instance of type x (not function type) 
+            returning 
+              instance of type x (not function type) 
+
+        Declaration of u: instance of type u (not function type) with initializer 
+          Simple Initializer:             Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: u
+                Name: y
+
+        Declaration of z: instance of type x (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: t
+            ...to: 
+                Name: u
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: z
+                Applying untyped: 
+                    Name: t
+                ...to: 
+                    Name: u
+
+
+p: double 
+context has_u
+    with parameters
+      z: type
+
+    with members
+      u: function
+          with parameters
+            instance of type z (not function type) 
+          returning 
+            instance of type z (not function type) 
+
+
+q: forall
+      t: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type t (not function type) 
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+          u: pointer to function
+              with parameters
+                instance of type t (not function type) 
+              returning 
+                instance of type t (not function type) 
+
+
+    function
+    with parameters
+      the_t: instance of type t (not function type) 
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of y: instance of type t (not function type) with initializer 
+          Simple Initializer:             Applying untyped: 
+                Name: u
+            ...to: 
+                Name: the_t
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: y
+                Applying untyped: 
+                    Name: u
+                ...to: 
+                    Name: the_t
+
+
+f: function
+    with parameters
+      p: double 
+    returning 
+      float 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+                  CompoundStmt
+            Declaration of y: char 
+                          CompoundStmt
+                Declaration of x: char 
+                Declaration of z: char with initializer 
+                  Simple Initializer:                     Name: x
+
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: z
+                        Name: x
+
+
+            Declaration of x: char with initializer 
+              Simple Initializer:                 Name: y
+
+                          Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: x
+                    Name: y
+
+
+        Declaration of q: char with initializer 
+          Simple Initializer:             Name: y
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: q
+                Name: y
+
+
+g: function
+    returning 
+      float 
+    with body 
+      CompoundStmt
+                  Try Statement
+            with block: 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: some_func
+                    ...to: 
+
+            and handlers: 
+              Catch Statement
+              ... catching
+x: char 
+
+        Declaration of z: char 
+
+q: function
+      accepting unspecified arguments
+    returning 
+      double 
+    with parameter names
+      i
+    with parameter declarations
+      i: signed int 
+    with body 
+      CompoundStmt
+                  Switch on condition: Name: i
+
+              Case Name: 0
+
+                  Return Statement, returning: Name: q
+
+              Default 
+                  Return Statement, returning: Name: i
+
+
+
Index: src/Tests/Output-v/ScopeErrors.txt
===================================================================
--- src/Tests/Output-v/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/ScopeErrors.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+Error: duplicate function definition for butThisIsAnError: function
+  with parameters
+    double 
+  returning 
+    double 
+  with body 
+    CompoundStmt
+
Index: src/Tests/Output-v/ShortCircuit.txt
===================================================================
--- src/Tests/Output-v/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/ShortCircuit.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,105 @@
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      float 
+      float 
+    returning 
+      signed int 
+
+0: signed int 
+g: function
+    with parameters
+      float 
+    returning 
+      nothing 
+
+g: function
+    with parameters
+      signed int 
+    returning 
+      nothing 
+
+f: function
+    with parameters
+      a: signed int 
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of b: signed int 
+        Declaration of c: float 
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Name: a
+                        Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Name: b
+                Second alternative:
+                  Name: c
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: c
+      Name: 0
+
+to:
+  signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: a
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Name: b
+      Name: 0
+
+to:
+  signed int 
+
+
+
Index: src/Tests/Output-v/Statement.txt
===================================================================
--- src/Tests/Output-v/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Statement.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,108 @@
+?=?: function
+    with parameters
+      pointer to signed int 
+      signed int 
+    returning 
+      signed int 
+
+?!=?: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+0: signed int 
+f: function
+      accepting unspecified arguments
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of struct __anonymous0
+            with members
+              b: signed int 
+
+        Declaration of ?=?: automatically generated inline function
+            with parameters
+              _dst: pointer to instance of struct __anonymous0 
+              _src: instance of struct __anonymous0 
+            returning 
+              instance of struct __anonymous0 
+            with body 
+              CompoundStmt
+                                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Member Expression, with field: 
+                            b: signed int 
+                          from aggregate: 
+                            Applying untyped: 
+                                Name: *?
+                            ...to: 
+                                Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                        Member Expression, with field: 
+                          b: signed int 
+                        from aggregate: 
+                          Variable Expression: _src: instance of struct __anonymous0 
+
+                                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+        Declaration of a: instance of struct __anonymous0 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: a
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              CompoundStmt
+                                  While on condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Name: a
+                            Name: 0
+
+                      to:
+                        signed int 
+                  .... with body: 
+                      CompoundStmt
+                        Declaration of b: pointer to signed int 
+                                                  Labels: {}
+                          For Statement
+                            initialization: 
+                              Expression Statement:
+                                Name: b
+
+                            condition: 
+                              Cast of:
+                                Applying untyped: 
+                                    Name: ?!=?
+                                ...to: 
+                                    Name: a
+                                    Name: 0
+
+                              to:
+                                signed int 
+
+                            increment: 
+                              Name: b
+
+                            statement block: 
+                              CompoundStmt
+
+
+
+
+
Index: src/Tests/Output-v/StructMember.txt
===================================================================
--- src/Tests/Output-v/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/StructMember.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,693 @@
+struct S
+    with members
+      m1: signed int with bitfield width constant expression 3 signed int 
+      m2: signed int with bitfield width constant expression 4 signed int 
+      signed int with bitfield width constant expression 2 signed int 
+      signed int with bitfield width constant expression 3 signed int 
+      signed int with bitfield width constant expression 4 signed int 
+      m3: signed int 
+      m4: signed int 
+      m5: signed int 
+      m6: signed int 
+      m7: pointer to signed int 
+      m8: pointer to signed int 
+      m9: pointer to signed int 
+      m10: pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      m11: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      T: signed int 
+      T: signed int 
+      m12: pointer to signed int 
+      m13: pointer to signed int 
+      m14: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      signed int 
+      signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      signed int 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to signed int 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+      pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct S 
+      _src: instance of struct S 
+    returning 
+      instance of struct S 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m1: signed int with bitfield width constant expression 3 signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m1: signed int with bitfield width constant expression 3 signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m2: signed int with bitfield width constant expression 4 signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m2: signed int with bitfield width constant expression 4 signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m4: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m4: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m5: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m5: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m6: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m6: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m7: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m7: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m8: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m8: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m9: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m9: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m10: pointer to function
+                        accepting unspecified arguments
+                      returning 
+                        signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m10: pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m11: pointer to function
+                      with parameters
+                        signed int 
+                      returning 
+                        pointer to signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m11: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    T: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    T: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m12: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m12: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m13: pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m13: pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    m14: pointer to function
+                      with parameters
+                        signed int 
+                      returning 
+                        pointer to signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  m14: pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      pointer to signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to function
+                        accepting unspecified arguments
+                      returning 
+                        signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to function
+                      accepting unspecified arguments
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    pointer to pointer to function
+                      with parameters
+                        signed int 
+                      returning 
+                        signed int 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  pointer to pointer to function
+                    with parameters
+                      signed int 
+                    returning 
+                      signed int 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S 
+                Member Expression, with field: 
+                  signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct S 
+
+
+
+s: instance of struct S 
+union U
+    with members
+      m1: array of signed int with dimension of constant expression 5 signed int 
+      m2: array of signed int with dimension of constant expression 5 signed int 
+      m3: pointer to signed int 
+      m4: pointer to signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of union U 
+      _src: instance of union U 
+    returning 
+      instance of union U 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: __builtin_memcpy
+            ...to: 
+                Variable Expression: _dst: pointer to instance of union U 
+                Address of:
+                  Variable Expression: _src: instance of union U 
+                Sizeof Expression on: instance of union U 
+
+                  Return Statement, returning: Variable Expression: _src: instance of union U 
+
+
+
+u: instance of union U 
Index: src/Tests/Output-v/Subrange.txt
===================================================================
--- src/Tests/Output-v/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Subrange.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,409 @@
+context ordered
+    with parameters
+      T: type
+
+    with members
+      ?<?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+      ?<=?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            signed int 
+
+
+subrange: type for instance of type base_t (not function type) 
+  with parameters
+    base_t: type
+      with assertions
+        instance of context ordered 
+          with parameters
+            instance of type base_t (not function type) 
+
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type subrange (not function type) 
+      _src: instance of type subrange (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type subrange (not function type) 
+
+    to:
+      pointer to instance of type base_t (not function type) 
+    Cast of:
+      Variable Expression: _src: instance of type subrange (not function type) 
+
+    to:
+      instance of type base_t (not function type) 
+
+
+
+day_of_month: instance of type subrange (not function type) 
+  with parameters
+    unsigned int 
+          Name: 1
+
+    constant expression 31 signed int 
+
+lcase: instance of type subrange (not function type) 
+  with parameters
+    char 
+    constant expression 'a' char 
+    constant expression 'z' char 
+
+foo: instance of type subrange (not function type) 
+  with parameters
+    signed int 
+          Name: 0
+
+          Applying untyped: 
+          Name: ?&?
+      ...to: 
+          Applying untyped: 
+              Name: rand
+          ...to: 
+constant expression 0xF signed int 
+
+lbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: low
+
+
+
+hbound: forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+
+    function
+    with parameters
+      v: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    returning 
+      instance of type T (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Name: high
+
+
+
+lday: unsigned int with initializer 
+  Simple Initializer:     Applying untyped: 
+        Name: lbound
+    ...to: 
+        Name: day_of_month
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+      source: instance of type T (not function type) 
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: low
+
+                      Name: high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: high
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
+?=?: inline forall
+      T: type
+        with assertions
+          ?=?: pointer to function
+              with parameters
+                pointer to instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                instance of type T (not function type) 
+
+          ?<?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+          ?<=?: pointer to function
+              with parameters
+                instance of type T (not function type) 
+                instance of type T (not function type) 
+              returning 
+                signed int 
+
+
+    function
+    with parameters
+      target: pointer to instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+      source: instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: s_low
+
+                      Name: s_high
+
+
+    returning 
+      instance of type subrange (not function type) 
+        with parameters
+          instance of type T (not function type) 
+                      Name: t_low
+
+                      Name: t_high
+
+
+    with body 
+      CompoundStmt
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Short-circuited operation (and) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: s_low
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: t_low
+          Name: source
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Short-circuited operation (or) on: Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: s_high
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+ and Cast of:
+  Applying untyped: 
+      Name: ?!=?
+  ...to: 
+      Applying untyped: 
+          Name: ?<=?
+      ...to: 
+          Name: source
+          Name: t_high
+      Name: 0
+
+to:
+  signed int 
+
+      Name: 0
+
+to:
+  signed int 
+
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Applying untyped: 
+                          Name: *?
+                      ...to: 
+                          Cast of:
+                            Name: target
+
+                          to:
+                            pointer to instance of type T (not function type) 
+                    Name: source
+              Expression Statement:
+                Applying untyped: 
+                    Name: abort
+                ...to: 
+
+                  Return Statement, returning: Name: target
+
+
+
Index: src/Tests/Output-v/Switch.txt
===================================================================
--- src/Tests/Output-v/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Switch.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,131 @@
+fred: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of i: signed int 
+                  Switch on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Switch on condition: constant expression 3 signed int 
+              Default 
+              Case constant expression 2 signed int 
+              Case constant expression 3 signed int 
+                  Expression Statement:
+constant expression 3 signed int 
+                  Switch on condition: Name: i
+
+
+                  Switch on condition: Name: i
+
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Branch (Break)
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+                        Name: 1
+
+                  Choose on condition: Name: i
+
+              Case constant expression 3 signed int 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 'A' char constant expression 'Z' char 
+              Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 5 signed int constant expression 6 signed int 
+              Case Tuple:
+  constant expression 2 signed int 
+  constant expression 4 signed int 
+  constant expression 7 signed int 
+
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int                   Fall-through statement
+              Default 
+                  Expression Statement:
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: i
+constant expression 3 signed int               Case Applying untyped: 
+    Name: Range
+...to: 
+constant expression 8 signed int constant expression 10 signed int 
+                  Fall-through statement
+
+
Index: src/Tests/Output-v/Tuple.txt
===================================================================
--- src/Tests/Output-v/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Tuple.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,670 @@
+f: function
+    with parameters
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+g: function
+    with parameters
+      signed int 
+      signed int 
+      signed int 
+    returning 
+      signed int 
+
+h: static function
+    with parameters
+      a: signed int 
+      b: signed int 
+      c: pointer to signed int 
+      d: pointer to char 
+    returning 
+      signed int 
+      pointer to signed int 
+      pointer to signed int 
+      signed int 
+
+struct inner
+    with members
+      f2: signed int 
+      f3: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct inner 
+      _src: instance of struct inner 
+    returning 
+      instance of struct inner 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f2: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct inner 
+                Member Expression, with field: 
+                  f2: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct inner 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f3: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct inner 
+                Member Expression, with field: 
+                  f3: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct inner 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct inner 
+
+
+
+struct outer
+    with members
+      f1: signed int 
+      i: instance of struct inner 
+      f4: double 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct outer 
+      _src: instance of struct outer 
+    returning 
+      instance of struct outer 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f1: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct outer 
+                Member Expression, with field: 
+                  f1: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct outer 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of struct inner 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct outer 
+                Member Expression, with field: 
+                  i: instance of struct inner 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct outer 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    f4: double 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct outer 
+                Member Expression, with field: 
+                  f4: double 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct outer 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct outer 
+
+
+
+s: instance of struct outer 
+sp: pointer to instance of struct outer 
+t1: const volatile tuple of types
+    signed int 
+    signed int 
+
+t2: static const tuple of types
+    signed int 
+    const signed int 
+
+t3: static const tuple of types
+    signed int 
+    const signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      rc: signed int 
+
+printf: function
+    with parameters
+      fmt: pointer to char 
+      and a variable number of other arguments
+    returning 
+      signed int 
+
+f1: function
+    with parameters
+      w: signed int 
+    returning 
+      x: short signed int 
+      y: unsigned int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: y
+
+                                          Name: x
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: x
+
+                                                  Name: y
+
+                    Tuple:
+                                              Name: w
+
+                      constant expression 23 signed int 
+
+
+g1: function
+    returning 
+      r: tuple of types
+          signed int 
+          char 
+          long signed int 
+          signed int 
+
+    with body 
+      CompoundStmt
+        Declaration of x: short signed int 
+        Declaration of p: short signed int 
+        Declaration of y: unsigned int 
+        Declaration of z: tuple of types
+            signed int 
+            signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Tuple:
+                                      Name: p
+
+                                      Applying untyped: 
+                        Name: f
+                    ...to: 
+constant expression 17 signed int 
+                  constant expression 3 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: x
+
+                                          Name: y
+
+                                          Name: z
+
+                Cast of:
+                  Tuple:
+                                          Name: p
+
+                                          Applying untyped: 
+                          Name: f
+                      ...to: 
+constant expression 17 signed int 
+                    constant expression 3 signed int 
+
+                to:
+                  short signed int 
+                  unsigned int 
+                  tuple of types
+                      signed int 
+                      signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: r
+                Tuple:
+                                      Name: x
+
+                                      Name: y
+
+                                      Name: z
+
+
+
+main: C function
+    with parameters
+      argc: signed int 
+      argv: pointer to pointer to char 
+    returning 
+      rc: signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: signed int 
+        Declaration of b: signed int 
+        Declaration of c: signed int 
+        Declaration of d: signed int 
+        Declaration of t: instance of struct outer with initializer 
+          Compound initializer:  
+            Simple Initializer:               Tuple:
+                                  Name: 1
+
+                constant expression 7.0 double 
+
+              designated by:                 Name: f1
+                Name: f4
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Tuple:
+                  constant expression 3 signed int 
+                  constant expression 5 signed int 
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: f
+            ...to: 
+                Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: g
+            ...to: 
+                Name: t1
+constant expression 3 signed int 
+                  Expression Statement:
+            Tuple:
+
+                  Expression Statement:
+            Tuple:
+              constant expression 3 signed int 
+              constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+constant expression 3 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Tuple:
+                  constant expression 4.6 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Tuple:
+                      constant expression 3 signed int 
+                      constant expression 5 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                                          Tuple:
+                                                  Name: c
+
+
+                Tuple:
+                  constant expression 2 signed int 
+                                      Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Conditional expression on: 
+                  Cast of:
+                    Applying untyped: 
+                        Name: ?!=?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?>?
+                        ...to: 
+constant expression 3 signed int constant expression 4 signed int                         Name: 0
+
+                  to:
+                    signed int 
+                First alternative:
+                  Tuple:
+                                          Name: b
+
+                    constant expression 6 signed int 
+                Second alternative:
+                  Tuple:
+                    constant expression 7 signed int 
+                    constant expression 8 signed int 
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Tuple:
+                                      Name: a
+
+                                      Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t2
+                    Tuple:
+                                              Name: a
+
+                                              Name: b
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Applying untyped: 
+                        Name: ?+=?
+                    ...to: 
+                        Address of:
+                          Name: d
+                        Applying untyped: 
+                            Name: ?+=?
+                        ...to: 
+                            Address of:
+                              Name: c
+                            Name: 1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                                                  Name: c
+
+                                                  Name: d
+
+                    Name: t1
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Tuple:
+                                              Name: c
+
+                                              Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Name: t1
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Name: t2
+                        Tuple:
+                                                      Name: c
+
+                                                      Name: d
+
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: t1
+                Applying untyped: 
+                    Name: ?=?
+                ...to: 
+                    Address of:
+                      Tuple:
+                        constant expression 3 signed int 
+                        constant expression 4 signed int 
+                    Applying untyped: 
+                        Name: ?=?
+                    ...to: 
+                        Address of:
+                          Tuple:
+                            constant expression 3 signed int 
+                            constant expression 4 signed int 
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: t1
+                            Tuple:
+                              constant expression 3 signed int 
+                              constant expression 4 signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Tuple:
+                  constant expression 11 signed int 
+                  constant expression 12 signed int 
+                  constant expression 13 signed int 
+                  constant expression 3.14159 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: s
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Tuple:
+                                          Name: a
+
+                                          Name: b
+
+                Applying untyped: 
+                    Name: h
+                ...to: 
+constant expression 3 signed int constant expression 3 signed int                     Name: 0
+constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: sp
+                Name: sp
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: printf
+            ...to: 
+constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int                 Name: s
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: rc
+                Name: 0
+
+
Index: src/Tests/Output-v/TypeGenerator.txt
===================================================================
--- src/Tests/Output-v/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/TypeGenerator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,403 @@
+context addable
+    with parameters
+      T: type
+
+    with members
+      ?+?: function
+          with parameters
+            instance of type T (not function type) 
+            instance of type T (not function type) 
+          returning 
+            instance of type T (not function type) 
+
+
+struct __anonymous0
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of type List1 (not function type) 
+        with parameters
+          instance of type T (not function type) 
+
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    data: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    next: pointer to instance of type List1 (not function type) 
+                    with parameters
+                      instance of type T (not function type) 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  next: pointer to instance of type List1 (not function type) 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+List1: type for pointer to instance of struct __anonymous0 
+  with parameters
+    T: type
+      with assertions
+        instance of context addable 
+          with parameters
+            instance of type T (not function type) 
+
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type List1 (not function type) 
+      _src: instance of type List1 (not function type) 
+    returning 
+      instance of type List1 (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List1 (not function type) 
+
+    to:
+      pointer to pointer to instance of struct __anonymous0 
+    Cast of:
+      Variable Expression: _src: instance of type List1 (not function type) 
+
+    to:
+      pointer to instance of struct __anonymous0 
+
+
+
+li: instance of type List1 (not function type) 
+  with parameters
+    signed int 
+
+f: function
+    with parameters
+      g: pointer to function
+          with parameters
+            signed int 
+          returning 
+            instance of type List1 (not function type) 
+              with parameters
+                signed int 
+
+
+    returning 
+      signed int 
+
+h: function
+    with parameters
+      p: pointer to instance of type List1 (not function type) 
+        with parameters
+          signed int 
+
+    returning 
+      signed int 
+
+struct S1
+    with parameters
+      T: type
+
+struct S1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct S1 
+      _src: instance of struct S1 
+    returning 
+      instance of struct S1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S1 
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct S1 
+
+
+
+v1: instance of struct S1 
+  with parameters
+    signed int 
+
+p: pointer to instance of struct S1 
+  with parameters
+    signed int 
+
+struct S2
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct S2 
+      _src: instance of struct S2 
+    returning 
+      instance of struct S2 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct S2 
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct S2 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct S2 
+
+
+
+v2: instance of struct S2 
+  with parameters
+    signed int 
+
+struct __anonymous1
+    with parameters
+      T: type
+
+    with members
+      i: instance of type T (not function type) 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous1 
+      _src: instance of struct __anonymous1 
+    returning 
+      instance of struct __anonymous1 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    i: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous1 
+                Member Expression, with field: 
+                  i: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous1 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous1 
+
+
+
+v2: instance of struct __anonymous1 
+  with parameters
+    signed int 
+
+struct node
+    with parameters
+      T: type
+        with assertions
+          instance of context addable 
+            with parameters
+              instance of type T (not function type) 
+
+
+
+    with members
+      data: instance of type T (not function type) 
+      next: pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct node 
+      _src: instance of struct node 
+    returning 
+      instance of struct node 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    data: instance of type T (not function type) 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct node 
+                Member Expression, with field: 
+                  data: instance of type T (not function type) 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct node 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    next: pointer to instance of struct node 
+                    with parameters
+                      instance of type T (not function type) 
+
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct node 
+                Member Expression, with field: 
+                  next: pointer to instance of struct node 
+                  with parameters
+                    instance of type T (not function type) 
+
+                from aggregate: 
+                  Variable Expression: _src: instance of struct node 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct node 
+
+
+
+List: type for pointer to instance of struct node 
+  with parameters
+    instance of type T (not function type) 
+
+  with parameters
+    T: type
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type List (not function type) 
+      _src: instance of type List (not function type) 
+    returning 
+      instance of type List (not function type) 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: ?=?
+...to: 
+    Cast of:
+      Variable Expression: _dst: pointer to instance of type List (not function type) 
+
+    to:
+      pointer to pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+    Cast of:
+      Variable Expression: _src: instance of type List (not function type) 
+
+    to:
+      pointer to instance of struct node 
+        with parameters
+          instance of type T (not function type) 
+
+
+
+
+my_list: instance of type List (not function type) 
+  with parameters
+    signed int 
+
+Complex: type
+  with assertions
+    instance of context addable 
+      with parameters
+        instance of type Complex (not function type) 
+
+
+?=?: automatically generated function
+    with parameters
+      _dst: pointer to instance of type Complex (not function type) 
+      _src: instance of type Complex (not function type) 
+    returning 
+      instance of type Complex (not function type) 
+
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Cast of:
+              Name: my_list
+
+            to:
+              instance of struct node 
+                with parameters
+                  signed int 
+
+
+
Index: src/Tests/Output-v/Typedef.txt
===================================================================
--- src/Tests/Output-v/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Typedef.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,86 @@
+f: function
+    returning 
+      nothing 
+    with body 
+      CompoundStmt
+        Declaration of T: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: T
+            ...to: 
+constant expression 3 signed int 
+
+struct __anonymous0
+    with members
+      T: signed int 
+
+?=?: automatically generated inline static function
+    with parameters
+      _dst: pointer to instance of struct __anonymous0 
+      _src: instance of struct __anonymous0 
+    returning 
+      instance of struct __anonymous0 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Member Expression, with field: 
+                    T: signed int 
+                  from aggregate: 
+                    Applying untyped: 
+                        Name: *?
+                    ...to: 
+                        Variable Expression: _dst: pointer to instance of struct __anonymous0 
+                Member Expression, with field: 
+                  T: signed int 
+                from aggregate: 
+                  Variable Expression: _src: instance of struct __anonymous0 
+
+                  Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 
+
+
+
+fred: instance of struct __anonymous0 with initializer 
+  Compound initializer:  
+    Simple Initializer: constant expression 3 signed int 
+b: pointer to function
+    with parameters
+      signed int 
+      char 
+    returning 
+      signed int 
+
+g: function
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of a: double 
+
+c: pointer to function
+    with parameters
+      signed int 
+      char 
+    returning 
+      signed int 
+
+p: type-of expression constant expression 3 signed int 
+q: type-of expression constant expression 3 signed int 
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of w: type-of expression constant expression 3 signed int 
+        Declaration of x: type-of expression constant expression 3 signed int 
+
+array: array of pointer to signed int with dimension of constant expression 10 signed int 
Index: src/Tests/Output-v/TypedefDeclarator.txt
===================================================================
--- src/Tests/Output-v/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/TypedefDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,185 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of f1: signed int 
+        Declaration of f2: signed int 
+        Declaration of f3: pointer to signed int 
+        Declaration of f4: pointer to pointer to signed int 
+        Declaration of f5: pointer to const pointer to signed int 
+        Declaration of f6: const pointer to const pointer to signed int 
+        Declaration of f7: pointer to signed int 
+        Declaration of f8: pointer to pointer to signed int 
+        Declaration of f9: pointer to const pointer to signed int 
+        Declaration of f10: const pointer to const pointer to signed int 
+        Declaration of f11: pointer to signed int 
+        Declaration of f12: pointer to pointer to signed int 
+        Declaration of f13: pointer to const pointer to signed int 
+        Declaration of f14: const pointer to const pointer to signed int 
+        Declaration of f15: open array of signed int 
+        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f17: open array of signed int 
+        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
+        Declaration of f19: open array of pointer to signed int 
+        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f21: open array of pointer to pointer to signed int 
+        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f23: open array of pointer to const pointer to signed int 
+        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f25: open array of const pointer to const pointer to signed int 
+        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f27: open array of pointer to signed int 
+        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f29: open array of pointer to pointer to signed int 
+        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f31: open array of pointer to const pointer to signed int 
+        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f33: open array of const pointer to const pointer to signed int 
+        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f35: open array of pointer to signed int 
+        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f37: open array of pointer to pointer to signed int 
+        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f39: open array of pointer to const pointer to signed int 
+        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f41: open array of const pointer to const pointer to signed int 
+        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
+        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+        Declaration of f65: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f66: function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f67: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f68: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f69: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f70: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f71: function
+            with parameters
+              signed int 
+            returning 
+              pointer to signed int 
+
+        Declaration of f72: function
+            with parameters
+              signed int 
+            returning 
+              pointer to pointer to signed int 
+
+        Declaration of f73: function
+            with parameters
+              signed int 
+            returning 
+              pointer to const pointer to signed int 
+
+        Declaration of f74: function
+            with parameters
+              signed int 
+            returning 
+              const pointer to const pointer to signed int 
+
+        Declaration of f75: pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f76: pointer to pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f77: pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f78: const pointer to const pointer to function
+            with parameters
+              signed int 
+            returning 
+              signed int 
+
+        Declaration of f79: pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f80: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+        Declaration of f81: const pointer to function
+            with parameters
+              signed int 
+            returning 
+              const pointer to function
+                    accepting unspecified arguments
+                  returning 
+                    signed int 
+
+
+
Index: src/Tests/Output-v/TypedefParamDeclarator.txt
===================================================================
--- src/Tests/Output-v/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/TypedefParamDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,262 @@
+fred: function
+    with parameters
+      f1: signed int 
+      f3: pointer to signed int 
+      f4: pointer to pointer to signed int 
+      f5: pointer to const pointer to signed int 
+      f6: const pointer to const pointer to signed int 
+      f11: pointer to signed int 
+      f12: pointer to pointer to signed int 
+      f13: pointer to const pointer to signed int 
+      f14: const pointer to const pointer to signed int 
+      f15: pointer to signed int 
+      f16: pointer to array of constant expression 10 signed int signed int 
+      f19: pointer to pointer to signed int 
+      f20: pointer to array of constant expression 10 signed int pointer to signed int 
+      f21: pointer to pointer to pointer to signed int 
+      f22: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f23: pointer to pointer to const pointer to signed int 
+      f24: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f25: pointer to const pointer to const pointer to signed int 
+      f26: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f35: pointer to pointer to signed int 
+      f36: pointer to array of constant expression 10 signed int pointer to signed int 
+      f37: pointer to pointer to pointer to signed int 
+      f38: pointer to array of constant expression 10 signed int pointer to pointer to signed int 
+      f39: pointer to pointer to const pointer to signed int 
+      f40: pointer to array of constant expression 10 signed int pointer to const pointer to signed int 
+      f41: pointer to const pointer to const pointer to signed int 
+      f42: pointer to array of constant expression 10 signed int const pointer to const pointer to signed int 
+      f43: pointer to array of signed int with dimension of constant expression 3 signed int 
+      f44: pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f49: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f50: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f51: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f52: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f53: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f54: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f55: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f56: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f57: pointer to array of pointer to signed int with dimension of constant expression 3 signed int 
+      f58: pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f59: pointer to array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f60: pointer to array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f61: pointer to array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f62: pointer to array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f63: pointer to array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f64: pointer to array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f65: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f67: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to signed int 
+
+      f68: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      f69: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      f70: pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f75: pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f76: pointer to pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f77: pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f78: const pointer to const pointer to function
+          with parameters
+            signed int 
+          returning 
+            signed int 
+
+      f79: pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f80: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f81: const pointer to function
+          with parameters
+            signed int 
+          returning 
+            const pointer to function
+                  accepting unspecified arguments
+                returning 
+                  signed int 
+
+
+      f82: const pointer to variable length array of signed int 
+      f83: const pointer to array of constant expression 3 signed int signed int 
+      f84: pointer to static array of constant expression 3 signed int signed int 
+      f85: const pointer to static array of constant expression 3 signed int signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            signed int 
+
+      f90: const pointer to variable length array of pointer to signed int 
+      f91: const pointer to array of constant expression 3 signed int pointer to signed int 
+      f92: pointer to static array of constant expression 3 signed int pointer to pointer to signed int 
+      f93: const pointer to static array of constant expression 3 signed int pointer to const pointer to signed int 
+      f94: const pointer to static array of constant expression 3 signed int const pointer to const pointer to signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+      f100: const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+      f101: const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f102: pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      f103: const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            signed int 
+
+      f108: const pointer to variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
+      f109: const pointer to array of constant expression 3 signed int array of pointer to signed int with dimension of constant expression 3 signed int 
+      f110: pointer to static array of constant expression 3 signed int array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+      f111: const pointer to static array of constant expression 3 signed int array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      f112: const pointer to static array of constant expression 3 signed int array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+      pointer to function
+          with parameters
+            const pointer to variable length array of array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to signed int 
+
+      pointer to function
+          with parameters
+            pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            pointer to const pointer to signed int 
+
+      pointer to function
+          with parameters
+            const pointer to static array of constant expression 3 signed int array of signed int with dimension of constant expression 3 signed int 
+          returning 
+            const pointer to const pointer to signed int 
+
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+
Index: src/Tests/Output-v/Typeof.txt
===================================================================
--- src/Tests/Output-v/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/Typeof.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+main: C function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of v1: pointer to signed int 
+        Declaration of v2: type-of expression           Name: v1
+
+        Declaration of v3: array of type-of expression           Applying untyped: 
+              Name: *?
+          ...to: 
+              Name: v1
+with dimension of constant expression 4 signed int 
+        Declaration of v4: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v5: array of pointer to char with dimension of constant expression 4 signed int 
+        Declaration of v6: pointer to signed int 
+        Declaration of v7: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+        Declaration of v8: pointer to function
+            with parameters
+              signed int 
+              p: signed int 
+            returning 
+              signed int 
+
+
Index: src/Tests/Output-v/VariableDeclarator.txt
===================================================================
--- src/Tests/Output-v/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/VariableDeclarator.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,253 @@
+f1: signed int 
+f2: signed int 
+f3: pointer to signed int 
+f4: pointer to pointer to signed int 
+f5: pointer to const pointer to signed int 
+f6: const pointer to const pointer to signed int 
+f7: pointer to signed int 
+f8: pointer to pointer to signed int 
+f9: pointer to const pointer to signed int 
+f10: const pointer to const pointer to signed int 
+f11: pointer to signed int 
+f12: pointer to pointer to signed int 
+f13: pointer to const pointer to signed int 
+f14: const pointer to const pointer to signed int 
+f15: open array of signed int 
+f16: array of signed int with dimension of constant expression 10 signed int 
+f17: open array of signed int 
+f18: array of signed int with dimension of constant expression 10 signed int 
+f19: open array of pointer to signed int 
+f20: array of pointer to signed int with dimension of constant expression 10 signed int 
+f21: open array of pointer to pointer to signed int 
+f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f23: open array of pointer to const pointer to signed int 
+f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f25: open array of const pointer to const pointer to signed int 
+f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f27: open array of pointer to signed int 
+f28: array of pointer to signed int with dimension of constant expression 10 signed int 
+f29: open array of pointer to pointer to signed int 
+f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+f31: open array of pointer to const pointer to signed int 
+f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f33: open array of const pointer to const pointer to signed int 
+f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+f35: pointer to open array of signed int 
+f36: pointer to array of signed int with dimension of constant expression 10 signed int 
+f37: pointer to pointer to open array of signed int 
+f38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+f39: pointer to const pointer to open array of signed int 
+f40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f41: const pointer to const pointer to open array of signed int 
+f42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+f43: open array of array of signed int with dimension of constant expression 3 signed int 
+f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f45: open array of array of signed int with dimension of constant expression 3 signed int 
+f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f47: open array of array of signed int with dimension of constant expression 3 signed int 
+f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+f65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f69: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f71: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+f72: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+f73: function
+    with parameters
+      signed int 
+    returning 
+      pointer to const pointer to signed int 
+
+f74: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+f75: pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f76: pointer to pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f77: pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f78: const pointer to const pointer to function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+f79: pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f80: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+f81: const pointer to function
+    with parameters
+      signed int 
+    returning 
+      const pointer to function
+            accepting unspecified arguments
+          returning 
+            signed int 
+
+
+cf3: pointer to signed int 
+cf4: pointer to pointer to signed int 
+cf5: pointer to const pointer to signed int 
+cf6: const pointer to const pointer to signed int 
+cf15: open array of signed int 
+cf16: array of signed int with dimension of constant expression 10 signed int 
+cf19: open array of pointer to signed int 
+cf20: array of pointer to signed int with dimension of constant expression 10 signed int 
+cf21: open array of pointer to pointer to signed int 
+cf22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
+cf23: open array of pointer to const pointer to signed int 
+cf24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf25: open array of const pointer to const pointer to signed int 
+cf26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
+cf35: pointer to open array of signed int 
+cf36: pointer to array of signed int with dimension of constant expression 10 signed int 
+cf37: pointer to pointer to open array of signed int 
+cf38: pointer to pointer to array of signed int with dimension of constant expression 10 signed int 
+cf39: pointer to const pointer to open array of signed int 
+cf40: pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf41: const pointer to const pointer to open array of signed int 
+cf42: const pointer to const pointer to array of signed int with dimension of constant expression 10 signed int 
+cf43: open array of array of signed int with dimension of constant expression 3 signed int 
+cf44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
+cf50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
+cf52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf53: open array of array of const pointer to signed int with dimension of constant expression 3 signed int 
+cf54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
+cf56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
+cf65: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf66: function
+    with parameters
+      signed int 
+    returning 
+      signed int 
+
+cf67: function
+    with parameters
+      signed int 
+    returning 
+      pointer to signed int 
+
+cf68: function
+    with parameters
+      signed int 
+    returning 
+      pointer to pointer to signed int 
+
+cf69: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to pointer to signed int 
+
+cf70: function
+    with parameters
+      signed int 
+    returning 
+      const pointer to const pointer to signed int 
+
+v3: pointer to open array of pointer to open array of pointer to function
+    with parameters
+      pointer to open array of pointer to open array of signed int 
+      pointer to open array of pointer to open array of signed int 
+    returning 
+      pointer to open array of pointer to open array of signed int 
+
Index: src/Tests/Output-v/gcc900407-1.txt
===================================================================
--- src/Tests/Output-v/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/gcc900407-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,71 @@
+foo: function
+    with parameters
+      a: signed int 
+      b: signed int 
+      p: pointer to signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of c: signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: a
+constant expression 0x1000 signed int 
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: c
+                Applying untyped: 
+                    Name: ?+?
+                ...to: 
+                    Name: b
+constant expression 0xffff0000 unsigned int 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?==?
+                    ...to: 
+                        Applying untyped: 
+                            Name: ?+?
+                        ...to: 
+                            Name: b
+constant expression 0xffff0000 unsigned int constant expression 2 signed int                     Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Expression Statement:
+                Applying untyped: 
+                    Name: ?++
+                ...to: 
+                    Address of:
+                      Name: c
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Applying untyped: 
+                      Name: ?[?]
+                  ...to: 
+                      Name: p
+constant expression 2 signed int                 Name: c
+
+
Index: src/Tests/Output-v/gcc900516-1.txt
===================================================================
--- src/Tests/Output-v/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/gcc900516-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,26 @@
+f: function
+    with parameters
+      c: signed int 
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Return Statement, returning: Applying untyped: 
+    Name: !?
+...to: 
+    Conditional expression on: 
+      Cast of:
+        Applying untyped: 
+            Name: ?!=?
+        ...to: 
+            Name: c
+            Name: 0
+
+      to:
+        signed int 
+    First alternative:
+constant expression 2.0 double     Second alternative:
+constant expression 1.0 double 
+
+
+
Index: src/Tests/Output-v/gcc920301-1.txt
===================================================================
--- src/Tests/Output-v/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/gcc920301-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+f: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of t: static open array of pointer to void 
+                  Null Statement
+
+
+g: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of p: static array of unsigned int with dimension of constant expression 5 signed int 
+
Index: src/Tests/Output-v/gcc920409-1.txt
===================================================================
--- src/Tests/Output-v/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/gcc920409-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,32 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of y: signed int 
+                  Expression Statement:
+            Conditional expression on: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?>?
+                    ...to: 
+                        Name: y
+constant expression 0.0 double                     Name: 0
+
+              to:
+                signed int 
+            First alternative:
+              Name: y
+            Second alternative:
+              Applying untyped: 
+                  Name: ?-?
+              ...to: 
+                  Name: y
+                  Name: 1
+
+
+
Index: src/Tests/Output-v/gcc920409-2.txt
===================================================================
--- src/Tests/Output-v/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/gcc920409-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,90 @@
+x: function
+      accepting unspecified arguments
+    returning 
+      double 
+    with body 
+      CompoundStmt
+        Declaration of x1: signed int 
+        Declaration of x2: signed int 
+        Declaration of v: double 
+                  If on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Applying untyped: 
+                        Name: ?<?
+                    ...to: 
+                        Cast of:
+                          Applying untyped: 
+                              Name: ?-?
+                          ...to: 
+                              Name: x1
+                              Name: x2
+
+                        to:
+                          long signed int 
+                        Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... and branches: 
+              Return Statement, returning: Applying untyped: 
+    Name: -?
+...to: 
+constant expression 1.0 double 
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: t
+                ...to: 
+                    Name: v
+
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: v
+                Applying untyped: 
+                    Name: y
+                ...to: 
+                    Name: 1
+                    Conditional expression on: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?>?
+                            ...to: 
+                                Name: v
+constant expression 0.0 double                             Name: 0
+
+                      to:
+                        signed int 
+                    First alternative:
+                      Cast of:
+                        Name: v
+
+                      to:
+                        signed int 
+                    Second alternative:
+                      Applying untyped: 
+                          Name: ?-?
+                      ...to: 
+                          Cast of:
+                            Name: v
+
+                          to:
+                            signed int 
+                          Name: 1
+
+
+
Index: src/Tests/Output-v/gcc920410-2.txt
===================================================================
--- src/Tests/Output-v/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/gcc920410-2.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,93 @@
+joe: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of j: signed int 
+                  While on condition: 
+              Cast of:
+                Applying untyped: 
+                    Name: ?!=?
+                ...to: 
+                    Name: 1
+                    Name: 0
+
+              to:
+                signed int 
+          .... with body: 
+              CompoundStmt
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+                                  Labels: {}
+                  For Statement
+                    initialization: 
+                      Expression Statement:
+                        Applying untyped: 
+                            Name: ?=?
+                        ...to: 
+                            Address of:
+                              Name: j
+                            Name: 0
+
+                    condition: 
+                      Cast of:
+                        Applying untyped: 
+                            Name: ?!=?
+                        ...to: 
+                            Applying untyped: 
+                                Name: ?<?
+                            ...to: 
+                                Name: j
+constant expression 4 signed int                             Name: 0
+
+                      to:
+                        signed int 
+
+                    increment: 
+                      Applying untyped: 
+                          Name: ?++
+                      ...to: 
+                          Address of:
+                            Name: j
+
+                    statement block: 
+                      Null Statement
+
+
+
+
Index: src/Tests/Output-v/gcc920501-1.txt
===================================================================
--- src/Tests/Output-v/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/gcc920501-1.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,16 @@
+a: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+        Declaration of b: open array of pointer to pointer to signed int with initializer 
+          Compound initializer:  
+            Simple Initializer:               Applying untyped: 
+                  Name: LabAddress
+              ...to: 
+                  Name: c
+
+                  Null Statement
+
+
Index: src/Tests/Output-v/gcc920501-11.txt
===================================================================
--- src/Tests/Output-v/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/gcc920501-11.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+cfa-cpp: Parser/ExpressionNode.cc:456: virtual Expression* CompositeExprNode::build() const: Assertion `args.size() == 1' failed.
+Aborted (core dumped)
Index: src/Tests/Output-v/gcc920501-19.txt
===================================================================
--- src/Tests/Output-v/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/gcc920501-19.txt	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+x: long long signed int with initializer 
+  Simple Initializer:     Name: 0
+
+y: function
+      accepting unspecified arguments
+    returning 
+      signed int 
+    with body 
+      CompoundStmt
+                  Expression Statement:
+            Applying untyped: 
+                Name: ?=?
+            ...to: 
+                Address of:
+                  Name: x
+                Name: 0
+
+
Index: src/Tests/Output-v/report
===================================================================
--- src/Tests/Output-v/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Output-v/report	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,64 @@
+---Abstype.txt---
+---Array.txt---
+---AsmName.txt---
+---Attributes.txt---
+---Cast.txt---
+---CastError.txt---
+---CharStringConstants.txt---
+---CommentMisc.txt---
+---Constant0-1.txt---
+---Context.txt---
+---DeclarationErrors.txt---
+---DeclarationSpecifier.txt---
+---Enum.txt---
+---Exception.txt---
+---Expression.txt---
+---Forall.txt---
+---Function.txt---
+---Functions.txt---
+---GccExtensions.txt---
+---IdentFuncDeclarator.txt---
+---IdentFuncParamDeclarator.txt---
+---InferParam.txt---
+---Initialization.txt---
+---Initialization2.txt---
+---LabelledExit.txt---
+---Members.txt---
+---Misc.txt---
+---MiscError.txt---
+---NamedParmArg.txt---
+---NumericConstants.txt---
+---OccursError.txt---
+---Operators.txt---
+---Quad.txt---
+---Rank2.txt---
+---Scope.txt---
+---ScopeErrors.txt---
+---ShortCircuit.txt---
+---Statement.txt---
+---StructMember.txt---
+---Subrange.txt---
+---Switch.txt---
+---Tuple.txt---
+---TypeGenerator.txt---
+84,89d83
+<   with assertions
+<     instance of context addable 
+<       with parameters
+<         instance of type T (not function type) 
+< 
+< 
+---Typedef.txt---
+---TypedefDeclarator.txt---
+---TypedefParamDeclarator.txt---
+---Typeof.txt---
+---VariableDeclarator.txt---
+---gcc900407-1.txt---
+---gcc900516-1.txt---
+---gcc920301-1.txt---
+---gcc920409-1.txt---
+---gcc920409-2.txt---
+---gcc920410-2.txt---
+---gcc920501-1.txt---
+---gcc920501-11.txt---
+---gcc920501-19.txt---
Index: c/Tests/Parser/Expected/Array.tst
===================================================================
--- src/Tests/Parser/Expected/Array.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,48 +1,0 @@
-a1: a open array of int 
-a2: a variable-length array of int 
-a4: a array of 3 int 
-m1: a open array of array of 3 int 
-m2: a variable-length array of variable-length array of int 
-m4: a array of 3 array of 3 int 
-T: a typedef definition for int 
-fred: a function
-  with no parameters 
-  returning int 
-  with body 
-    a1: a open array of int 
-    a2: a variable-length array of int 
-    a4: a array of     3 int 
-    T: a array of     3 int 
-
-mary: a function
-  with parameters 
-    T: a array of     3 int 
-    p1: a const array of     3 int 
-    p2: a static array of     3 int 
-    p3: a const static array of     3 int 
-  returning int 
-  with body 
-
-  Null Statement:
-
-tom: a function
-  with no parameters 
-  returning pointer to array of     3 int 
-  with body 
-
-  Null Statement:
-
-jane: a function
-  with no parameters 
-  returning pointer to function
-      with parameters 
-        T: a array of         3 int 
-        p1: a const array of         3 int 
-        p2: a static array of         3 int 
-        p3: a const static array of         3 int 
-      returning int 
-
-  with body 
-
-  Null Statement:
-
Index: c/Tests/Parser/Expected/Constant0-1.tst
===================================================================
--- src/Tests/Parser/Expected/Constant0-1.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,62 +1,0 @@
-0: a int 
-0: a const int 
-0: a static const int 
-1: a int 
-1: a const int 
-1: a static const int 
-0: a int 
-1: a int 
-0: a const int 
-1: a const int 
-0: a static const int 
-1: a static const int 
-0: a instance of struct __anonymous0
-  with members 
-    i: a int 
-
-1: a const instance of struct __anonymous1
-  with members 
-    i: a int 
-
-1: a static const instance of struct __anonymous2
-  with members 
-    i: a int 
-
-1: a int 
-0: a pointer to int 
-1: a int 
-1: a int 
-0: a pointer to int 
-0: a pointer to int 
-0: a pointer to int 
-0: a const pointer to int 
-0: a const pointer to int 
-0: a const pointer to int 
-0: a pointer to instance of struct __anonymous3
-  with members 
-    i: a int 
-
-x: a pointer to int 
-0: a pointer to int 
-x: a const pointer to int 
-0: a const pointer to int 
-x: a static const pointer to int 
-0: a static const pointer to int 
-0: a pointer to instance of struct __anonymous4
-  with members 
-    i: a int 
-
-0: a const pointer to instance of struct __anonymous5
-  with members 
-    i: a int 
-
-0: a static const pointer to instance of struct __anonymous6
-  with members 
-    i: a int 
-
-x: a static pointer to int 
-0: a static pointer to int 
-x: a static const pointer to int 
-0: a static const pointer to int 
-x: a const pointer to pointer to int 
-0: a const pointer to pointer to int 
Index: c/Tests/Parser/Expected/DeclarationSpecifier.tst
===================================================================
--- src/Tests/Parser/Expected/DeclarationSpecifier.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,276 +1,0 @@
-Int: a typedef definition for short int 
-x1: a const volatile short int 
-x2: a static const volatile short int 
-x3: a static volatile const short int 
-x4: a static volatile const short int 
-x4: a static volatile const short int 
-x5: a static const volatile short int 
-x6: a static const volatile short int 
-x7: a static const volatile short int 
-x8: a static volatile const short int 
-x9: a static static volatile const short int 
-x10: a const volatile instance of struct __anonymous0
-  with members 
-    i: a int 
-
-x11: a const volatile instance of struct __anonymous1
-  with members 
-    i: a int 
-
-x12: a const volatile instance of struct __anonymous2
-  with members 
-    i: a int 
-
-x13: a static const volatile instance of struct __anonymous3
-  with members 
-    i: a int 
-
-x14: a static volatile const instance of struct __anonymous4
-  with members 
-    i: a int 
-
-x15: a static const volatile instance of struct __anonymous5
-  with members 
-    i: a int 
-
-x16: a static const volatile instance of struct __anonymous6
-  with members 
-    i: a int 
-
-x17: a static const volatile instance of struct __anonymous7
-  with members 
-    i: a int 
-
-x18: a static static const volatile instance of struct __anonymous8
-  with members 
-    i: a int 
-
-x19: a static static const volatile volatile instance of struct __anonymous9
-  with members 
-    i: a int 
-
-x20: a const volatile instance of type Int
-x21: a static const volatile instance of type Int
-x22: a static volatile const instance of type Int
-x23: a static volatile const instance of type Int
-x24: a static const volatile instance of type Int
-x25: a static const volatile instance of type Int
-x26: a static const volatile instance of type Int
-x27: a static volatile const instance of type Int
-x28: a static static volatile const instance of type Int
-x29: a const volatile instance of struct __anonymous10
-  with members 
-    i: a instance of type Int
-
-x30: a const volatile instance of struct __anonymous11
-  with members 
-    i: a instance of type Int
-
-x31: a const volatile instance of struct __anonymous12
-  with members 
-    i: a instance of type Int
-
-x32: a static const volatile instance of struct __anonymous13
-  with members 
-    i: a instance of type Int
-
-x33: a static volatile const instance of struct __anonymous14
-  with members 
-    i: a instance of type Int
-
-x34: a static const volatile instance of struct __anonymous15
-  with members 
-    i: a instance of type Int
-
-x35: a static const volatile instance of struct __anonymous16
-  with members 
-    i: a instance of type Int
-
-x36: a static const volatile instance of struct __anonymous17
-  with members 
-    i: a instance of type Int
-
-f01: a static inline function
-  with no parameters 
-  returning const volatile const int 
-
-f02: a inline static function
-  with no parameters 
-  returning volatile const volatile int 
-
-f03: a inline static function
-  with no parameters 
-  returning const volatile const int 
-
-f04: a inline static function
-  with no parameters 
-  returning const volatile volatile int 
-
-f05: a static inline function
-  with no parameters 
-  returning volatile const const int 
-
-f06: a static inline function
-  with no parameters 
-  returning volatile const volatile int 
-
-f07: a static inline function
-  with no parameters 
-  returning const volatile const int 
-
-f08: a static inline function
-  with no parameters 
-  returning const volatile volatile int 
-
-f11: a static inline function
-  with no parameters 
-  returning const volatile int 
-
-f12: a inline static function
-  with no parameters 
-  returning const volatile int 
-
-f13: a inline static function
-  with no parameters 
-  returning const volatile int 
-
-f14: a inline static function
-  with no parameters 
-  returning const volatile int 
-
-f15: a static inline function
-  with no parameters 
-  returning volatile const int 
-
-f16: a static inline function
-  with no parameters 
-  returning const volatile int 
-
-f17: a static inline function
-  with no parameters 
-  returning const volatile int 
-
-f18: a static inline function
-  with no parameters 
-  returning const volatile int 
-
-f21: a inline static function
-  with no parameters 
-  returning const volatile short int 
-
-f22: a static inline function
-  with no parameters 
-  returning const volatile short int 
-
-f23: a inline static function
-  with no parameters 
-  returning const volatile short int 
-
-f24: a inline static function
-  with no parameters 
-  returning const volatile short int 
-
-f25: a static inline function
-  with no parameters 
-  returning volatile const short int 
-
-f26: a static inline function
-  with no parameters 
-  returning const volatile short int 
-
-f27: a inline static function
-  with no parameters 
-  returning const volatile short int 
-
-f28: a inline static function
-  with no parameters 
-  returning volatile const short int 
-
-f31: a static inline function
-  with no parameters 
-  returning const volatile instance of struct __anonymous18
-      with members 
-        i: a int 
-
-
-f32: a inline static function
-  with no parameters 
-  returning const volatile instance of struct __anonymous19
-      with members 
-        i: a int 
-
-
-f33: a inline static function
-  with no parameters 
-  returning const volatile instance of struct __anonymous20
-      with members 
-        i: a int 
-
-
-f34: a inline static function
-  with no parameters 
-  returning const volatile instance of struct __anonymous21
-      with members 
-        i: a int 
-
-
-f35: a static inline function
-  with no parameters 
-  returning volatile const instance of struct __anonymous22
-      with members 
-        i: a int 
-
-
-f36: a static inline function
-  with no parameters 
-  returning const volatile instance of struct __anonymous23
-      with members 
-        i: a int 
-
-
-f37: a static inline function
-  with no parameters 
-  returning const volatile instance of struct __anonymous24
-      with members 
-        i: a int 
-
-
-f38: a static inline function
-  with no parameters 
-  returning const volatile instance of struct __anonymous25
-      with members 
-        i: a int 
-
-
-f41: a static inline function
-  with no parameters 
-  returning const volatile instance of type Int
-
-f42: a inline static function
-  with no parameters 
-  returning const volatile instance of type Int
-
-f43: a inline static function
-  with no parameters 
-  returning const volatile instance of type Int
-
-f44: a inline static function
-  with no parameters 
-  returning const volatile instance of type Int
-
-f45: a static inline function
-  with no parameters 
-  returning volatile const instance of type Int
-
-f46: a static inline function
-  with no parameters 
-  returning const volatile instance of type Int
-
-f47: a static inline function
-  with no parameters 
-  returning const volatile instance of type Int
-
-f48: a static inline function
-  with no parameters 
-  returning const volatile instance of type Int
-
Index: c/Tests/Parser/Expected/Forall.tst
===================================================================
--- src/Tests/Parser/Expected/Forall.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,319 +1,0 @@
-f: a typedef definition for pointer to forall 
-      T: a type variable 
-function
-    with parameters 
-      int 
-    returning int 
-
-swap: a forall 
-    T: a type variable 
-function
-  with parameters 
-    left: a instance of type T
-    right: a instance of type T
-  returning void 
-  with body 
-    temp: a instance of type T
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: left
-
-        Referencing: Variable: right
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: right
-
-        Referencing: Variable: temp
-
-
-context sumable
-  with type parameters 
-    T: a type variable 
-  with members 
-    0: a const instance of type T
-    ?+?: a function
-      with parameters 
-        instance of type T
-        instance of type T
-      returning instance of type T
-
-    ?++: a function
-      with parameters 
-        instance of type T
-      returning instance of type T
-
-    ?+=?: a function
-      with parameters 
-        instance of type T
-        instance of type T
-      returning tuple with members 
-          instance of type T
-
-
-
-T1: a type definition 
-  with assertions
-    0: a const instance of type T1
-    ?+?: a function
-      with parameters 
-        instance of type T1
-        instance of type T1
-      returning instance of type T1
-
-    ?++: a function
-      with parameters 
-        instance of type T1
-      returning instance of type T1
-
-    ?+=?: a function
-      with parameters 
-        instance of type T1
-        instance of type T1
-      returning tuple with members 
-          instance of type T1
-
-
-  
-T2: a type definition 
-  with parameters
-  P1: a type variable 
-  P2: a type variable 
-
-T3: a type definition 
-  with assertions
-    instance of context sumable
-      with parameters 
-      Type:        instance of type T3
-
-  
-T2: a type definition 
-  with parameters
-  P1: a type variable 
-  P2: a type variable 
-
-  with assertions
-    instance of context sumable
-      with parameters 
-      Type:        instance of type T2 with parameters
-          Type:            instance of type P1
-          Type:            instance of type P2
-
-
-  for instance of struct __anonymous0
-    with members 
-      i: a instance of type P1
-      j: a instance of type P2
-
-w1: a instance of type T2 with parameters
-  Type:    int 
-  Type:    int 
-
-w2: a typedef definition for instance of type T2 with parameters
-    Type:      int 
-    Type:      int 
-
-g2: a instance of type w2
-w3: a type definition for instance of type T2 with parameters
-    Type:      int 
-    Type:      int 
-
-g3: a instance of type w3
-sum: a forall 
-    T: a type variable 
-      with assertions
-        instance of context sumable
-          with parameters 
-          Type:            instance of type T
-
-      
-function
-  with parameters 
-    n: a int 
-    a: a open array of instance of type T
-  returning instance of type T
-  with body 
-    total: a instance of type T
-    i: a int 
-
-    For
-
-        Expression: 
-
-            Application of: 
-
-                Operator: Assign
-
-            ... on arguments: 
-
-                Referencing: Variable: i
-
-                Referencing: Variable: 0
-
-            Application of: 
-
-                Operator: LThan
-
-            ... on arguments: 
-
-                Referencing: Variable: i
-
-                Referencing: Variable: n
-
-            Application of: 
-
-                Operator: PlusAssn
-
-            ... on arguments: 
-
-                Referencing: Variable: i
-
-                Referencing: Variable: 1
-
-        Branches of execution: 
-            
-            Application of: 
-
-                Operator: Assign
-
-            ... on arguments: 
-
-                Referencing: Variable: total
-
-                Application of: 
-
-                    Operator: Plus
-
-                ... on arguments: 
-
-                    Referencing: Variable: total
-
-                    Application of: 
-
-                        Operator: Index
-
-                    ... on arguments: 
-
-                        Referencing: Variable: a
-
-                        Referencing: Variable: i
-
-
-    Return
-
-        Expression: 
-
-            Referencing: Variable: total
-
-twice: a forall 
-    T: a type variable 
-      with assertions
-        0: a const instance of type T
-        ?+?: a function
-          with parameters 
-            instance of type T
-            instance of type T
-          returning instance of type T
-
-        ?++: a function
-          with parameters 
-            instance of type T
-          returning instance of type T
-
-        ?+=?: a function
-          with parameters 
-            instance of type T
-            instance of type T
-          returning tuple with members 
-              instance of type T
-
-
-      
-function
-  with parameters 
-    t: a instance of type T
-  returning instance of type T
-  with body 
-
-    Return
-
-        Expression: 
-
-            Application of: 
-
-                Operator: Plus
-
-            ... on arguments: 
-
-                Referencing: Variable: t
-
-                Referencing: Variable: t
-
-main: a function
-  with no parameters 
-  returning int 
-  with body 
-    x: a int 
-    y: a int 
-    a: a array of     10 int 
-    f: a float 
-    
-    Application of: 
-
-        Referencing: Variable: swap
-
-    ... on arguments: 
-
-        Referencing: Variable: x
-
-        Referencing: Variable: y
-
-    
-    Application of: 
-
-        Referencing: Variable: twice
-
-    ... on arguments: 
-
-        Referencing: Variable: x
-
-        Referencing: Variable: y
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: f
-
-        Application of: 
-
-            Referencing: Variable: min
-
-        ... on arguments: 
-            4.0 
-            3.0 
-
-    
-    Application of: 
-
-        Referencing: Variable: sum
-
-    ... on arguments: 
-        10 
-
-        Referencing: Variable: a
-
-
Index: c/Tests/Parser/Expected/Functions.tst
===================================================================
--- src/Tests/Parser/Expected/Functions.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,741 +1,0 @@
-h: a function
-  with parameters 
-    void 
-  returning void 
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    function
-      with parameters 
-        void 
-      returning int 
-
-    function
-      with parameters 
-        int 
-      returning int 
-
-    function
-      with parameters 
-        void 
-      returning int 
-
-    function
-      with parameters 
-        int 
-      returning int 
-
-    g: a function
-      with parameters 
-        void 
-      returning void 
-
-  returning int 
-  with body 
-    
-    Application of: 
-
-        Application of: 
-
-            Operator: PointTo
-
-        ... on arguments: 
-
-            Referencing: Variable: g
-
-    ... on no arguments: 
-
-    
-    Application of: 
-
-        Referencing: Variable: g
-
-    ... on no arguments: 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: g
-
-        Referencing: Variable: h
-
-
-f1: a function
-  with no parameters 
-  returning int 
-  with body 
-
-  Null Statement:
-
-f2: a function
-  with no parameters 
-  returning int 
-  with body 
-
-  Null Statement:
-
-f3: a function
-  with no parameters 
-  returning pointer to function
-      with no parameters 
-      returning int 
-
-  with body 
-
-  Null Statement:
-
-f4: a function
-  with no parameters 
-  returning pointer to int 
-  with body 
-
-  Null Statement:
-
-f5: a function
-  with no parameters 
-  returning pointer to function
-      with no parameters 
-      returning int 
-
-  with body 
-
-  Null Statement:
-
-f6: a function
-  with no parameters 
-  returning pointer to int 
-  with body 
-
-  Null Statement:
-
-f7: a function
-  with no parameters 
-  returning pointer to int 
-  with body 
-
-  Null Statement:
-
-f8: a function
-  with no parameters 
-  returning pointer to pointer to int 
-  with body 
-
-  Null Statement:
-
-f9: a function
-  with no parameters 
-  returning pointer to const pointer to int 
-  with body 
-
-  Null Statement:
-
-f10: a function
-  with no parameters 
-  returning pointer to open array of int 
-  with body 
-
-  Null Statement:
-
-f11: a function
-  with no parameters 
-  returning pointer to open array of array of     3 int 
-  with body 
-
-  Null Statement:
-
-f12: a function
-  with no parameters 
-  returning pointer to open array of array of     3 int 
-  with body 
-
-  Null Statement:
-
-fII1: a function
-  with parameters 
-    i: a int 
-  returning nothing 
-  with body 
-
-  Null Statement:
-
-fII2: a function
-  with parameters 
-    i: a int 
-  returning const entity of unknown type 
-  with body 
-
-  Null Statement:
-
-fII3: a extern function
-  with parameters 
-    i: a int 
-  returning nothing 
-  with body 
-
-  Null Statement:
-
-fII4: a extern function
-  with parameters 
-    i: a int 
-  returning const entity of unknown type 
-  with body 
-
-  Null Statement:
-
-fII5: a function
-  with no parameters 
-  returning pointer 
-  with body 
-
-  Null Statement:
-
-fII6: a function
-  with no parameters 
-  returning const pointer 
-  with body 
-
-  Null Statement:
-
-fII7: a function
-  with no parameters 
-  returning pointer to const long 
-  with body 
-
-  Null Statement:
-
-fII8: a static function
-  with no parameters 
-  returning pointer to const long 
-  with body 
-
-  Null Statement:
-
-fII9: a static function
-  with no parameters 
-  returning pointer to const long 
-  with body 
-
-  Null Statement:
-
-fO1: a function
-  with no parameters 
-  with old-style identifier list 
-    i: a untyped entity 
-  with old-style declaration list 
-    i: a int 
-  returning nothing 
-  with body 
-
-  Null Statement:
-
-fO2: a function
-  with no parameters 
-  with old-style identifier list 
-    i: a untyped entity 
-  with old-style declaration list 
-    i: a int 
-  returning int 
-  with body 
-
-  Null Statement:
-
-fO3: a function
-  with no parameters 
-  with old-style identifier list 
-    i: a untyped entity 
-  with old-style declaration list 
-    i: a int 
-  returning const entity of unknown type 
-  with body 
-
-  Null Statement:
-
-fO4: a extern function
-  with no parameters 
-  with old-style identifier list 
-    i: a untyped entity 
-  with old-style declaration list 
-    i: a int 
-  returning nothing 
-  with body 
-
-  Null Statement:
-
-fO5: a extern function
-  with no parameters 
-  with old-style identifier list 
-    i: a untyped entity 
-  with old-style declaration list 
-    i: a int 
-  returning const entity of unknown type 
-  with body 
-
-  Null Statement:
-
-f: a function
-  with no parameters 
-  returning tuple 
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      int 
-
-
-f: a function
-  with parameters 
-    int 
-  returning tuple 
-
-f: a function
-  with parameters 
-    int 
-  returning tuple with members 
-      int 
-
-
-f: a function
-  with no parameters 
-  returning tuple 
-  with body 
-
-  Null Statement:
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      int 
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    int 
-  returning tuple 
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    int 
-  returning tuple with members 
-      int 
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      x: a int 
-
-
-f: a function
-  with parameters 
-    x: a int 
-  returning tuple 
-
-f: a function
-  with parameters 
-    x: a int 
-  returning tuple with members 
-      x: a int 
-
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      x: a int 
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    x: a int 
-  returning tuple 
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    x: a int 
-  returning tuple with members 
-      x: a int 
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      int 
-      x: a int 
-
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-  returning tuple 
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-  returning tuple with members 
-      int 
-      x: a int 
-
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      int 
-      x: a int 
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-  returning tuple 
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-  returning tuple with members 
-      int 
-      x: a int 
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      int 
-      x: a int 
-      int 
-
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-    int 
-  returning tuple 
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-    int 
-  returning tuple with members 
-      int 
-      x: a int 
-      int 
-
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      int 
-      x: a int 
-      int 
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-    int 
-  returning tuple 
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-    int 
-  returning tuple with members 
-      int 
-      x: a int 
-      int 
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      int 
-      x: a int 
-      y: a pointer to int 
-
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-    y: a pointer to int 
-  returning tuple 
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-    y: a pointer to int 
-  returning tuple with members 
-      int 
-      x: a int 
-      y: a pointer to int 
-
-
-f: a function
-  with no parameters 
-  returning tuple with members 
-      int 
-      x: a int 
-      y: a pointer to int 
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-    y: a pointer to int 
-  returning tuple 
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    int 
-    x: a int 
-    y: a pointer to int 
-  returning tuple with members 
-      int 
-      x: a int 
-      y: a pointer to int 
-
-  with body 
-
-  Null Statement:
-
-f11: a function
-  with parameters 
-    int 
-  returning tuple with members 
-      int 
-
-
-f12: a function
-  with parameters 
-    int 
-  returning tuple with members 
-      int 
-
-
-f: a function
-  with parameters 
-    function
-      with parameters 
-        int 
-        p: a int 
-      returning int 
-
-    function
-      with parameters 
-        int 
-      returning tuple with members 
-          int 
-
-
-  returning tuple with members 
-      int 
-
-  with body 
-    p: a pointer to open array of array of     10 pointer to open array of array of     3 int 
-    p: a pointer to open array of array of     10 pointer to open array of array of     3 int 
-    p: a pointer to open array of pointer to function
-      with parameters 
-        int 
-      returning tuple with members 
-          int 
-
-
-
-f1: a static function
-  with no parameters 
-  returning pointer to const int 
-  with body 
-
-  Null Statement:
-
-f2: a static function
-  with no parameters 
-  returning tuple with members 
-      const int 
-
-  with body 
-
-  Null Statement:
-
-f3: a static inline function
-  with no parameters 
-  returning tuple with members 
-      const pointer to int 
-
-  with body 
-
-  Null Statement:
-
-f4: a static inline function
-  with no parameters 
-  returning tuple with members 
-      const tuple with members 
-        pointer to int 
-        int 
-
-
-  with body 
-
-  Null Statement:
-
-f5: a static function
-  with no parameters 
-  returning tuple with members 
-      const tuple with members 
-        pointer to int 
-        const int 
-
-
-  with body 
-
-  Null Statement:
-
-f: a function
-  with parameters 
-    function
-      with no parameters 
-      returning int 
-
-    function
-      with no parameters 
-      returning pointer to int 
-
-    function
-      with no parameters 
-      returning pointer to pointer to int 
-
-    function
-      with no parameters 
-      returning pointer to const pointer to int 
-
-    function
-      with no parameters 
-      returning const pointer to const pointer to int 
-
-    open array of int 
-    array of     10 int 
-    open array of pointer to int 
-    array of     10 pointer to int 
-    open array of pointer to pointer to int 
-    array of     10 pointer to pointer to int 
-    open array of pointer to const pointer to int 
-    array of     10 pointer to const pointer to int 
-    open array of const pointer to const pointer to int 
-    array of     10 const pointer to const pointer to int 
-  returning int 
-
-f: a function
-  with parameters 
-    function
-      with no parameters 
-      returning int 
-
-    function
-      with no parameters 
-      returning pointer to int 
-
-    function
-      with no parameters 
-      returning pointer to pointer to int 
-
-    function
-      with no parameters 
-      returning pointer to const pointer to int 
-
-    function
-      with no parameters 
-      returning const pointer to const pointer to int 
-
-    open array of int 
-    array of     10 int 
-    open array of pointer to int 
-    array of     10 pointer to int 
-    open array of pointer to pointer to int 
-    array of     10 pointer to pointer to int 
-    open array of pointer to const pointer to int 
-    array of     10 pointer to const pointer to int 
-    open array of const pointer to const pointer to int 
-    array of     10 const pointer to const pointer to int 
-  returning int 
-  with body 
-
-  Null Statement:
-
-T: a typedef definition for int 
-f: a function
-  with parameters 
-    function
-      with parameters 
-        instance of type T
-      returning instance of type T
-
-    T: a instance of type T
-  returning int 
-  with body 
-    
-    Application of: 
-
-        Referencing: Variable: T
-
-    ... on arguments: 
-
-        Referencing: Variable: T
-
-
Index: c/Tests/Parser/Expected/IdentFuncDeclarator.tst
===================================================================
--- src/Tests/Parser/Expected/IdentFuncDeclarator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,163 +1,0 @@
-main: a function
-  with no parameters 
-  returning int 
-  with body 
-    f1: a int 
-    f2: a int 
-    f3: a pointer to int 
-    f4: a pointer to pointer to int 
-    f5: a pointer to const pointer to int 
-    f6: a const pointer to const pointer to int 
-    f7: a pointer to int 
-    f8: a pointer to pointer to int 
-    f9: a pointer to const pointer to int 
-    f10: a const pointer to const pointer to int 
-    f11: a pointer to int 
-    f12: a pointer to pointer to int 
-    f13: a pointer to const pointer to int 
-    f14: a const pointer to const pointer to int 
-    f15: a open array of int 
-    f16: a array of     10 int 
-    f17: a open array of int 
-    f18: a array of     10 int 
-    f19: a open array of pointer to int 
-    f20: a array of     10 pointer to int 
-    f21: a open array of pointer to pointer to int 
-    f22: a array of     10 pointer to pointer to int 
-    f23: a open array of pointer to const pointer to int 
-    f24: a array of     10 pointer to const pointer to int 
-    f25: a open array of const pointer to const pointer to int 
-    f26: a array of     10 const pointer to const pointer to int 
-    f27: a open array of pointer to int 
-    f28: a array of     10 pointer to int 
-    f29: a open array of pointer to pointer to int 
-    f30: a array of     10 pointer to pointer to int 
-    f31: a open array of pointer to const pointer to int 
-    f32: a array of     10 pointer to const pointer to int 
-    f33: a open array of const pointer to const pointer to int 
-    f34: a array of     10 const pointer to const pointer to int 
-    f35: a open array of pointer to int 
-    f36: a array of     10 pointer to int 
-    f37: a open array of pointer to pointer to int 
-    f38: a array of     10 pointer to pointer to int 
-    f39: a open array of pointer to const pointer to int 
-    f40: a array of     10 pointer to const pointer to int 
-    f41: a open array of const pointer to const pointer to int 
-    f42: a array of     10 const pointer to const pointer to int 
-    f43: a open array of array of     3 int 
-    f44: a array of     3 array of     3 int 
-    f45: a open array of array of     3 int 
-    f46: a array of     3 array of     3 int 
-    f47: a open array of array of     3 int 
-    f48: a array of     3 array of     3 int 
-    f49: a open array of array of     3 pointer to int 
-    f50: a array of     3 array of     3 pointer to int 
-    f51: a open array of array of     3 pointer to pointer to int 
-    f52: a array of     3 array of     3 pointer to pointer to int 
-    f53: a open array of array of     3 pointer to const pointer to int 
-    f54: a array of     3 array of     3 pointer to const pointer to int 
-    f55: a open array of array of     3 const pointer to const pointer to int 
-    f56: a array of     3 array of     3 const pointer to const pointer to int 
-    f57: a open array of array of     3 pointer to int 
-    f58: a array of     3 array of     3 pointer to int 
-    f59: a open array of array of     3 pointer to pointer to int 
-    f60: a array of     3 array of     3 pointer to pointer to int 
-    f61: a open array of array of     3 pointer to const pointer to int 
-    f62: a array of     3 array of     3 pointer to const pointer to int 
-    f63: a open array of array of     3 const pointer to const pointer to int 
-    f64: a array of     3 array of     3 const pointer to const pointer to int 
-    f65: a function
-      with parameters 
-        int 
-      returning int 
-
-    f66: a function
-      with parameters 
-        int 
-      returning int 
-
-    f67: a function
-      with parameters 
-        int 
-      returning pointer to int 
-
-    f68: a function
-      with parameters 
-        int 
-      returning pointer to pointer to int 
-
-    f69: a function
-      with parameters 
-        int 
-      returning pointer to const pointer to int 
-
-    f70: a function
-      with parameters 
-        int 
-      returning const pointer to const pointer to int 
-
-    f71: a function
-      with parameters 
-        int 
-      returning pointer to int 
-
-    f72: a function
-      with parameters 
-        int 
-      returning pointer to pointer to int 
-
-    f73: a function
-      with parameters 
-        int 
-      returning pointer to const pointer to int 
-
-    f74: a function
-      with parameters 
-        int 
-      returning const pointer to const pointer to int 
-
-    f75: a pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f76: a pointer to pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f77: a pointer to const pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f78: a const pointer to const pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f79: a pointer to function
-      with parameters 
-        int 
-      returning pointer to function
-          with no parameters 
-          returning int 
-
-
-    f80: a const pointer to function
-      with parameters 
-        int 
-      returning pointer to function
-          with no parameters 
-          returning int 
-
-
-    f81: a const pointer to function
-      with parameters 
-        int 
-      returning const pointer to function
-          with no parameters 
-          returning int 
-
-
-
Index: c/Tests/Parser/Expected/IdentFuncParamDeclarator.tst
===================================================================
--- src/Tests/Parser/Expected/IdentFuncParamDeclarator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,199 +1,0 @@
-fred: a function
-  with parameters 
-    f1: a int 
-    f2: a int 
-    f3: a pointer to int 
-    f4: a pointer to pointer to int 
-    f5: a pointer to const pointer to int 
-    f6: a const pointer to const pointer to int 
-    f7: a pointer to int 
-    f8: a pointer to pointer to int 
-    f9: a pointer to const pointer to int 
-    f10: a const pointer to const pointer to int 
-    f11: a pointer to int 
-    f12: a pointer to pointer to int 
-    f13: a pointer to const pointer to int 
-    f14: a const pointer to const pointer to int 
-    f15: a open array of int 
-    f16: a array of     10 int 
-    f17: a open array of int 
-    f18: a array of     10 int 
-    f19: a open array of pointer to int 
-    f20: a array of     10 pointer to int 
-    f21: a open array of pointer to pointer to int 
-    f22: a array of     10 pointer to pointer to int 
-    f23: a open array of pointer to const pointer to int 
-    f24: a array of     10 pointer to const pointer to int 
-    f25: a open array of const pointer to const pointer to int 
-    f26: a array of     10 const pointer to const pointer to int 
-    f27: a open array of pointer to int 
-    f28: a array of     10 pointer to int 
-    f29: a open array of pointer to pointer to int 
-    f30: a array of     10 pointer to pointer to int 
-    f31: a open array of pointer to const pointer to int 
-    f32: a array of     10 pointer to const pointer to int 
-    f33: a open array of const pointer to const pointer to int 
-    f34: a array of     10 const pointer to const pointer to int 
-    f35: a open array of pointer to int 
-    f36: a array of     10 pointer to int 
-    f37: a open array of pointer to pointer to int 
-    f38: a array of     10 pointer to pointer to int 
-    f39: a open array of pointer to const pointer to int 
-    f40: a array of     10 pointer to const pointer to int 
-    f41: a open array of const pointer to const pointer to int 
-    f42: a array of     10 const pointer to const pointer to int 
-    f43: a open array of array of     3 int 
-    f44: a array of     3 array of     3 int 
-    f45: a open array of array of     3 int 
-    f46: a array of     3 array of     3 int 
-    f47: a open array of array of     3 int 
-    f48: a array of     3 array of     3 int 
-    f49: a open array of array of     3 pointer to int 
-    f50: a array of     3 array of     3 pointer to int 
-    f51: a open array of array of     3 pointer to pointer to int 
-    f52: a array of     3 array of     3 pointer to pointer to int 
-    f53: a open array of array of     3 pointer to const pointer to int 
-    f54: a array of     3 array of     3 pointer to const pointer to int 
-    f55: a open array of array of     3 const pointer to const pointer to int 
-    f56: a array of     3 array of     3 const pointer to const pointer to int 
-    f57: a open array of array of     3 pointer to int 
-    f58: a array of     3 array of     3 pointer to int 
-    f59: a open array of array of     3 pointer to pointer to int 
-    f60: a array of     3 array of     3 pointer to pointer to int 
-    f61: a open array of array of     3 pointer to const pointer to int 
-    f62: a array of     3 array of     3 pointer to const pointer to int 
-    f63: a open array of array of     3 const pointer to const pointer to int 
-    f64: a array of     3 array of     3 const pointer to const pointer to int 
-    f65: a function
-      with parameters 
-        int 
-      returning int 
-
-    f66: a function
-      with parameters 
-        int 
-      returning int 
-
-    f67: a function
-      with parameters 
-        int 
-      returning pointer to int 
-
-    f68: a function
-      with parameters 
-        int 
-      returning pointer to pointer to int 
-
-    f69: a function
-      with parameters 
-        int 
-      returning pointer to const pointer to int 
-
-    f70: a function
-      with parameters 
-        int 
-      returning const pointer to const pointer to int 
-
-    f71: a function
-      with parameters 
-        int 
-      returning pointer to int 
-
-    f72: a function
-      with parameters 
-        int 
-      returning pointer to pointer to int 
-
-    f73: a function
-      with parameters 
-        int 
-      returning pointer to const pointer to int 
-
-    f74: a function
-      with parameters 
-        int 
-      returning const pointer to const pointer to int 
-
-    f75: a pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f76: a pointer to pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f77: a pointer to const pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f78: a const pointer to const pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f79: a pointer to function
-      with parameters 
-        int 
-      returning pointer to function
-          with no parameters 
-          returning int 
-
-
-    f80: a const pointer to function
-      with parameters 
-        int 
-      returning pointer to function
-          with no parameters 
-          returning int 
-
-
-    f81: a const pointer to function
-      with parameters 
-        int 
-      returning const pointer to function
-          with no parameters 
-          returning int 
-
-
-    f82: a const variable-length array of int 
-    f83: a const array of     3 int 
-    f84: a static array of     3 int 
-    f85: a const static array of     3 int 
-    f86: a const variable-length array of int 
-    f87: a const array of     3 int 
-    f88: a static array of     3 int 
-    f89: a const static array of     3 int 
-    f90: a const variable-length array of pointer to int 
-    f91: a const array of     3 pointer to int 
-    f92: a static array of     3 pointer to pointer to int 
-    f93: a const static array of     3 pointer to const pointer to int 
-    f94: a const static array of     3 const pointer to const pointer to int 
-    f95: a const variable-length array of pointer to int 
-    f96: a const array of     3 pointer to int 
-    f97: a static array of     3 pointer to pointer to int 
-    f98: a const static array of     3 pointer to const pointer to int 
-    f99: a const static array of     3 const pointer to const pointer to int 
-    f100: a const variable-length array of array of     3 int 
-    f101: a const array of     3 array of     3 int 
-    f102: a static array of     3 array of     3 int 
-    f103: a const static array of     3 array of     3 int 
-    f104: a const variable-length array of array of     3 int 
-    f105: a const array of     3 array of     3 int 
-    f106: a static array of     3 array of     3 int 
-    f107: a const static array of     3 array of     3 int 
-    f108: a const variable-length array of array of     3 pointer to int 
-    f109: a const array of     3 array of     3 pointer to int 
-    f110: a static array of     3 array of     3 pointer to pointer to int 
-    f111: a const static array of     3 array of     3 pointer to const pointer to int 
-    f112: a const static array of     3 array of     3 const pointer to const pointer to int 
-    f113: a const variable-length array of array of     3 pointer to int 
-    f114: a const array of     3 array of     3 pointer to int 
-    f115: a static array of     3 array of     3 pointer to pointer to int 
-    f116: a const static array of     3 array of     3 pointer to const pointer to int 
-    f117: a const static array of     3 array of     3 const pointer to const pointer to int 
-  returning int 
-  with body 
-
Index: c/Tests/Parser/Expected/Initialization.tst
===================================================================
--- src/Tests/Parser/Expected/Initialization.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,29 +1,0 @@
-x21: a pointer to int 
-x22: a int 
-x21: a pointer to int 
-x22: a int 
-y1: a array of 20 int 
-y2: a array of 20 int 
-a: a instance of struct __anonymous0
-  with members 
-    w: a tuple with members 
-      int 
-
-
-w: a open array of instance of struct __anonymous1
-  with members 
-    a: a array of     3 int 
-    b: a int 
-
-v7: a instance of struct __anonymous3
-  with members 
-    f1: a int 
-    f2: a int 
-    f3: a int 
-    f4: a array of     4 instance of struct __anonymous2
-      with members 
-        g1: a int 
-        g2: a int 
-        g3: a int 
-
-
Index: c/Tests/Parser/Expected/Scope.tst
===================================================================
--- src/Tests/Parser/Expected/Scope.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,152 +1,0 @@
-x: a int 
-y: a typedef definition for double 
-t: a typedef definition for float 
-z: a instance of type y
-u: a type definition for instance of struct __anonymous0
-    with members 
-      a: a int 
-      b: a double 
-
-f: a function
-  with parameters 
-    y: a int 
-  returning int 
-
-q: a instance of type y
-w: a function
-  with parameters 
-    y: a instance of type y
-    v: a instance of type u
-  returning instance of type y
-  with body 
-    x: a type definition 
-      with assertions
-        t: a function
-          with parameters 
-            instance of type u
-          returning instance of type x
-
-      
-    u: a instance of type u
-      with initializer y 
-    z: a instance of type x
-      with initializer ( t u ) 
-
-p: a instance of type y
-context has_u
-  with type parameters 
-    z: a type variable 
-  with members 
-    u: a function
-      with parameters 
-        instance of type z
-      returning instance of type z
-
-
-q: a forall 
-    t: a type variable 
-      with assertions
-        instance of context has_u
-          with parameters 
-          Type:            instance of type t
-
-      
-function
-  with parameters 
-    the_t: a instance of type t
-  returning instance of type y
-  with body 
-    y: a instance of type t
-      with initializer ( u the_t ) 
-
-f: a function
-  with parameters 
-    p: a instance of type y
-  returning instance of type t
-  with body 
-    y: a int 
-    x: a typedef definition for char 
-      y: a instance of type x
-      z: a typedef definition for instance of type x
-        x: a instance of type z
-        y: a typedef definition for instance of type z
-        z: a instance of type y
-          with initializer x 
-      x: a instance of type z
-        with initializer y 
-    q: a instance of type x
-      with initializer y 
-
-g: a function
-  with parameters 
-    void 
-  returning instance of type t
-  with body 
-    x: a typedef definition for char 
-
-    Try
-
-        Branches of execution: 
-              
-              Application of: 
-
-                  Referencing: Variable: some_func
-
-              ... on no arguments: 
-
-
-            Catch
-
-                Declaration: 
-                    x: a instance of type x
-
-                Branches of execution: 
-                      y: a instance of type t
-                        with initializer x 
-    z: a instance of type x
-
-q: a function
-  with no parameters 
-  with old-style identifier list 
-    i: a untyped entity 
-  with old-style declaration list 
-    i: a int 
-  returning instance of type y
-  with body 
-
-    Switch
-
-        Expression: 
-
-            Referencing: Variable: i
-
-        Branches of execution: 
-
-            Case
-
-                Expression: 
-
-                    Referencing: Variable: 0
-
-                Branches of execution: 
-
-                    Return
-
-                        Expression: 
-
-                            Referencing: Variable: q
-
-            Default
-
-                Expression: 
-
-                    Null Expression
-
-                Branches of execution: 
-
-                    Return
-
-                        Expression: 
-
-                            Referencing: Variable: i
-
Index: c/Tests/Parser/Expected/StructMember.tst
===================================================================
--- src/Tests/Parser/Expected/StructMember.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,73 +1,0 @@
-T: a typedef definition for int 
-struct S
-  with members 
-    m1: a int 
-      with bitfield width 3 
-    m2: a int 
-      with bitfield width 4 
-    int 
-      with bitfield width 2 
-    int 
-      with bitfield width 3 
-    int 
-      with bitfield width 4 
-    m3: a int 
-    m4: a int 
-    m5: a int 
-    m6: a int 
-    m7: a pointer to int 
-    m8: a pointer to int 
-    m9: a pointer to int 
-    m10: a pointer to function
-      with no parameters 
-      returning int 
-
-    m11: a pointer to function
-      with parameters 
-        int 
-      returning pointer to int 
-
-    T: a instance of type T
-    T: a instance of type T
-    m12: a pointer to int 
-    m13: a pointer to int 
-    m14: a pointer to function
-      with parameters 
-        int 
-      returning tuple with members 
-          pointer to int 
-
-
-    int 
-    int 
-    int 
-    int 
-    pointer to int 
-    int 
-    int 
-    pointer to int 
-    pointer to int 
-    pointer to int 
-    pointer to int 
-    pointer to int 
-    pointer to int 
-    pointer to function
-      with no parameters 
-      returning int 
-
-    pointer to pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    instance of type T
-
-s: a instance of struct S
-
-u: a instance of union U
-  with members 
-    m1: a array of     5 int 
-    m2: a array of     5 int 
-    m3: a pointer to int 
-    m4: a pointer to int 
-
Index: c/Tests/Parser/Expected/Tuple.tst
===================================================================
--- src/Tests/Parser/Expected/Tuple.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,788 +1,0 @@
-f: a function
-  with parameters 
-    int 
-    int 
-  returning int 
-
-g: a function
-  with parameters 
-    int 
-    int 
-    int 
-  returning int 
-
-h: a static function
-  with parameters 
-    a: a int 
-    b: a int 
-    c: a pointer to int 
-    d: a open array of char 
-  returning tuple with members 
-      int 
-      pointer to int 
-      pointer to int 
-      int 
-
-
-struct inner
-  with members 
-    f2: a int 
-    f3: a int 
-
-s: a instance of struct outer
-  with members 
-    f1: a int 
-    i: a instance of struct inner
-
-    f4: a double 
-
-sp: a pointer to instance of struct outer
-
-t1: a const volatile tuple with members 
-  int 
-  int 
-
-t2: a static const tuple with members 
-  int 
-  const int 
-
-t3: a static const tuple with members 
-  int 
-  const int 
-
-printf: a function
-  with parameters 
-    fmt: a pointer to char 
-    and a variable number of other arguments
-  returning tuple with members 
-      rc: a int 
-
-
-printf: a function
-  with parameters 
-    fmt: a pointer to char 
-    and a variable number of other arguments
-  returning int 
-
-f1: a function
-  with parameters 
-    w: a int 
-  returning tuple with members 
-      x: a short 
-      y: a unsigned 
-
-  with body 
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: y
-
-            Referencing: Variable: x
-
-        Application of: 
-
-            Operator: Assign
-
-        ... on arguments: 
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: x
-
-                Referencing: Variable: y
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: w
-                23 
-
-
-g1: a function
-  with no parameters 
-  returning tuple with members 
-      r: a tuple with members 
-        int 
-        char 
-        long 
-        int 
-
-
-  with body 
-    x: a short 
-    p: a short 
-    y: a unsigned int 
-    z: a tuple with members 
-      int 
-      int 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: x
-
-            Referencing: Variable: y
-
-            Referencing: Variable: z
-
-        Application of: 
-
-            Operator: Cast
-
-        ... on arguments: 
-            Type:              tuple with members 
-                short 
-                unsigned int 
-                tuple with members 
-                  int 
-                  int 
-
-
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: p
-
-                Application of: 
-
-                    Referencing: Variable: f
-
-                ... on arguments: 
-                    17 
-                3 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: r
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: x
-
-            Referencing: Variable: y
-
-            Referencing: Variable: z
-
-
-main: a function
-  with parameters 
-    argc: a int 
-    argv: a pointer to pointer to char 
-  returning tuple with members 
-      rc: a int 
-
-  with body 
-    a: a int 
-    b: a int 
-    c: a int 
-    d: a int 
-    t: a instance of struct outer
-
-      with initializer [designated by: ()( TupleC 1 7.0 ) ]
-    
-    Application of: 
-
-        Referencing: Variable: f
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-            3 
-            5 
-
-    
-    Application of: 
-
-        Referencing: Variable: g
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-            3 
-            5 
-        3 
-
-    
-    Application of: 
-
-        Referencing: Variable: f
-
-    ... on arguments: 
-
-        Referencing: Variable: t1
-
-    
-    Application of: 
-
-        Referencing: Variable: g
-
-    ... on arguments: 
-
-        Referencing: Variable: t1
-        3 
-
-    
-    Application of: 
-
-        Operator: TupleC
-
-    ... on arguments: 
-        3 
-        5 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-        3 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-            4.6 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-        Application of: 
-
-            Operator: Assign
-
-        ... on arguments: 
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: c
-
-                Referencing: Variable: d
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-                3 
-                5 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: c
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-            2 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-        Application of: 
-
-            Operator: Cond
-
-        ... on arguments: 
-
-            Application of: 
-
-                Operator: GThan
-
-            ... on arguments: 
-                3 
-                4 
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: b
-                6 
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-                7 
-                8 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: t1
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: t1
-
-        Application of: 
-
-            Operator: Assign
-
-        ... on arguments: 
-
-            Referencing: Variable: t2
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: a
-
-                Referencing: Variable: b
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-        Application of: 
-
-            Operator: Assign
-
-        ... on arguments: 
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: c
-
-                Referencing: Variable: d
-
-            Application of: 
-
-                Operator: PlusAssn
-
-            ... on arguments: 
-
-                Referencing: Variable: d
-
-                Application of: 
-
-                    Operator: PlusAssn
-
-                ... on arguments: 
-
-                    Referencing: Variable: c
-
-                    Referencing: Variable: 1
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-        Application of: 
-
-            Operator: Assign
-
-        ... on arguments: 
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: c
-
-                Referencing: Variable: d
-
-            Referencing: Variable: t1
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-        Application of: 
-
-            Operator: Assign
-
-        ... on arguments: 
-
-            Referencing: Variable: t1
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-
-                Referencing: Variable: c
-
-                Referencing: Variable: d
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-
-            Referencing: Variable: a
-
-            Referencing: Variable: b
-
-        Application of: 
-
-            Operator: Assign
-
-        ... on arguments: 
-
-            Referencing: Variable: t1
-
-            Application of: 
-
-                Operator: Assign
-
-            ... on arguments: 
-
-                Referencing: Variable: t2
-
-                Application of: 
-
-                    Operator: TupleC
-
-                ... on arguments: 
-
-                    Referencing: Variable: c
-
-                    Referencing: Variable: d
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: t1
-
-        Application of: 
-
-            Operator: Assign
-
-        ... on arguments: 
-
-            Application of: 
-
-                Operator: TupleC
-
-            ... on arguments: 
-                3 
-                4 
-
-            Application of: 
-
-                Operator: Assign
-
-            ... on arguments: 
-
-                Application of: 
-
-                    Operator: TupleC
-
-                ... on arguments: 
-                    3 
-                    4 
-
-                Application of: 
-
-                    Operator: Assign
-
-                ... on arguments: 
-
-                    Referencing: Variable: t1
-
-                    Application of: 
-
-                        Operator: TupleC
-
-                    ... on arguments: 
-                        3 
-                        4 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: s
-
-        Application of: 
-
-            Operator: TupleC
-
-        ... on arguments: 
-            11 
-
-            Application of: 
-
-                Operator: Comma
-
-            ... on arguments: 
-                12 
-                13 
-            3.14159 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: s
-
-        Application of: 
-
-            Referencing: Variable: h
-
-        ... on arguments: 
-            3 
-            3 
-
-            Referencing: Variable: 0
-            ""abc"" 
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: sp
-
-        Referencing: Variable: sp
-
-    
-    Application of: 
-
-        Referencing: Variable: printf
-
-    ... on arguments: 
-        ""expecting 3, 17, 23, 4; got %d, %d, %d, %d\n"" 
-
-        Referencing: Variable: s
-
-    
-    Application of: 
-
-        Operator: Assign
-
-    ... on arguments: 
-
-        Referencing: Variable: rc
-
-        Referencing: Variable: 0
-
-
Index: c/Tests/Parser/Expected/TypeGenerator.tst
===================================================================
--- src/Tests/Parser/Expected/TypeGenerator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,112 +1,0 @@
-context addable
-  with type parameters 
-    T: a type variable 
-  with members 
-    ?+?: a function
-      with parameters 
-        instance of type T
-        instance of type T
-      returning instance of type T
-
-
-List: a type definition 
-  with parameters
-  T: a type variable 
-    with assertions
-      instance of context addable
-        with parameters 
-        Type:          instance of type T
-
-    
-
-  with assertions
-    instance of context addable
-      with parameters 
-      Type:        instance of type T
-
-  for pointer to instance of struct __anonymous0
-    with members 
-      data: a instance of type T
-      next: a pointer to instance of type List with parameters
-        Type:          instance of type T
-
-
-ListOfIntegers: a typedef definition for instance of type List with parameters
-    Type:      int 
-
-li: a instance of type ListOfIntegers
-f: a function
-  with parameters 
-    g: a pointer to function
-      with parameters 
-        int 
-      returning instance of type List with parameters
-          Type:            int 
-
-
-  returning int 
-
-h: a function
-  with parameters 
-    p: a pointer to instance of type List with parameters
-      Type:        int 
-
-  returning tuple with members 
-      int 
-
-
-struct node
-  with type parameters 
-    T: a type variable 
-      with assertions
-        instance of context addable
-          with parameters 
-          Type:            instance of type T
-
-      
-  with members 
-    data: a instance of type T
-    next: a pointer to instance of struct node
-      instantiated with actual parameters 
-        Type:          instance of type T
-      with parameters 
-      Type:        instance of type T
-
-
-List: a type definition 
-  with parameters
-  T: a type variable 
-for pointer to instance of struct node
-    instantiated with actual parameters 
-      Type:        instance of type T
-    with parameters 
-    Type:      instance of type T
-
-my_list: a instance of type List with parameters
-  Type:    int 
-
-Complex: a type definition 
-  with assertions
-    instance of context addable
-      with parameters 
-      Type:        instance of type Complex
-
-  
-main: a function
-  with no parameters 
-  returning int 
-  with body 
-    
-    Application of: 
-
-        Operator: Cast
-
-    ... on arguments: 
-        Type:          struct node
-            instantiated with actual parameters 
-              Type:                int 
-
-
-        Referencing: Variable: my_list
-
-
Index: c/Tests/Parser/Expected/Typedef.tst
===================================================================
--- src/Tests/Parser/Expected/Typedef.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,97 +1,0 @@
-T: a typedef definition for int 
-f: a function
-  with parameters 
-    void 
-  returning void 
-  with body 
-    T: a function
-      with parameters 
-        instance of type T
-      returning int 
-
-    
-    Application of: 
-
-        Referencing: Variable: T
-
-    ... on arguments: 
-        3 
-
-
-fred: a instance of struct __anonymous0
-  with members 
-    T: a instance of type T
-
-  with initializer [3 ]
-a: a typedef definition for pointer to function
-    with parameters 
-      int 
-      char 
-    returning int 
-
-b: a instance of type a
-g: a function
-  with parameters 
-    void 
-  returning int 
-  with body 
-    a: a double 
-
-c: a instance of type a
-main: a function
-  with no parameters 
-  returning int 
-  with body 
-
-  Null Statement:
-
-arrayOf10Pointers: a typedef definition for array of   10 pointer to int 
-x: a instance of type arrayOf10Pointers
-constantPointer: a typedef definition for const pointer to int 
-funcPtr: a typedef definition for pointer to function
-    with parameters 
-      open array of int 
-    returning tuple with members 
-        int 
-
-
-funcProto: a typedef definition for function
-    with parameters 
-      open array of int 
-    returning tuple with members 
-        int 
-
-
-tupleType: a typedef definition for tuple with members 
-    int 
-    int 
-
-tupleTypePtr: a typedef definition for pointer to tuple with members 
-    int 
-    int 
-
-a: a typedef definition for pointer to int 
-b: a typedef definition for pointer to int 
-f: a typedef definition for function
-    with parameters 
-      pointer to int 
-    returning tuple with members 
-        int 
-
-
-g: a typedef definition for function
-    with parameters 
-      pointer to int 
-    returning tuple with members 
-        int 
-
-
-t: a typedef definition for tuple with members 
-    pointer to static array of     10 int 
-
-f: a typedef definition for function
-    with no parameters 
-    returning tuple with members 
-        x: a pointer to static array of         10 int 
-
-
Index: c/Tests/Parser/Expected/TypedefDeclarator.tst
===================================================================
--- src/Tests/Parser/Expected/TypedefDeclarator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,253 +1,0 @@
-f0: a typedef definition for int 
-f1: a typedef definition for int 
-f2: a typedef definition for int 
-f3: a typedef definition for int 
-f4: a typedef definition for int 
-f5: a typedef definition for int 
-f6: a typedef definition for int 
-f7: a typedef definition for int 
-f8: a typedef definition for int 
-f9: a typedef definition for int 
-f10: a typedef definition for int 
-f11: a typedef definition for int 
-f12: a typedef definition for int 
-f13: a typedef definition for int 
-f14: a typedef definition for int 
-f15: a typedef definition for int 
-f16: a typedef definition for int 
-f17: a typedef definition for int 
-f18: a typedef definition for int 
-f19: a typedef definition for int 
-f20: a typedef definition for int 
-f21: a typedef definition for int 
-f22: a typedef definition for int 
-f23: a typedef definition for int 
-f24: a typedef definition for int 
-f25: a typedef definition for int 
-f26: a typedef definition for int 
-f27: a typedef definition for int 
-f28: a typedef definition for int 
-f29: a typedef definition for int 
-f30: a typedef definition for int 
-f31: a typedef definition for int 
-f32: a typedef definition for int 
-f33: a typedef definition for int 
-f34: a typedef definition for int 
-f35: a typedef definition for int 
-f36: a typedef definition for int 
-f37: a typedef definition for int 
-f38: a typedef definition for int 
-f39: a typedef definition for int 
-f40: a typedef definition for int 
-f41: a typedef definition for int 
-f42: a typedef definition for int 
-f43: a typedef definition for int 
-f44: a typedef definition for int 
-f45: a typedef definition for int 
-f46: a typedef definition for int 
-f47: a typedef definition for int 
-f48: a typedef definition for int 
-f49: a typedef definition for int 
-f50: a typedef definition for int 
-f51: a typedef definition for int 
-f52: a typedef definition for int 
-f53: a typedef definition for int 
-f54: a typedef definition for int 
-f55: a typedef definition for int 
-f56: a typedef definition for int 
-f57: a typedef definition for int 
-f58: a typedef definition for int 
-f59: a typedef definition for int 
-f60: a typedef definition for int 
-f61: a typedef definition for int 
-f62: a typedef definition for int 
-f63: a typedef definition for int 
-f64: a typedef definition for int 
-f65: a typedef definition for int 
-f66: a typedef definition for int 
-f67: a typedef definition for int 
-f68: a typedef definition for int 
-f69: a typedef definition for int 
-f70: a typedef definition for int 
-f71: a typedef definition for int 
-f72: a typedef definition for int 
-f73: a typedef definition for int 
-f74: a typedef definition for int 
-f75: a typedef definition for int 
-f76: a typedef definition for int 
-f77: a typedef definition for int 
-f78: a typedef definition for int 
-f79: a typedef definition for int 
-f80: a typedef definition for int 
-f81: a typedef definition for int 
-f82: a typedef definition for int 
-f83: a typedef definition for int 
-f84: a typedef definition for int 
-f85: a typedef definition for int 
-f86: a typedef definition for int 
-f87: a typedef definition for int 
-f88: a typedef definition for int 
-f89: a typedef definition for int 
-main: a function
-  with no parameters 
-  returning int 
-  with body 
-    f1: a int 
-    f2: a int 
-    f3: a pointer to int 
-    f4: a pointer to pointer to int 
-    f5: a pointer to const pointer to int 
-    f6: a const pointer to const pointer to int 
-    f7: a pointer to int 
-    f8: a pointer to pointer to int 
-    f9: a pointer to const pointer to int 
-    f10: a const pointer to const pointer to int 
-    f11: a pointer to int 
-    f12: a pointer to pointer to int 
-    f13: a pointer to const pointer to int 
-    f14: a const pointer to const pointer to int 
-    f15: a open array of int 
-    f16: a array of     10 int 
-    f17: a open array of int 
-    f18: a array of     10 int 
-    f19: a open array of pointer to int 
-    f20: a array of     10 pointer to int 
-    f21: a open array of pointer to pointer to int 
-    f22: a array of     10 pointer to pointer to int 
-    f23: a open array of pointer to const pointer to int 
-    f24: a array of     10 pointer to const pointer to int 
-    f25: a open array of const pointer to const pointer to int 
-    f26: a array of     10 const pointer to const pointer to int 
-    f27: a open array of pointer to int 
-    f28: a array of     10 pointer to int 
-    f29: a open array of pointer to pointer to int 
-    f30: a array of     10 pointer to pointer to int 
-    f31: a open array of pointer to const pointer to int 
-    f32: a array of     10 pointer to const pointer to int 
-    f33: a open array of const pointer to const pointer to int 
-    f34: a array of     10 const pointer to const pointer to int 
-    f35: a open array of pointer to int 
-    f36: a array of     10 pointer to int 
-    f37: a open array of pointer to pointer to int 
-    f38: a array of     10 pointer to pointer to int 
-    f39: a open array of pointer to const pointer to int 
-    f40: a array of     10 pointer to const pointer to int 
-    f41: a open array of const pointer to const pointer to int 
-    f42: a array of     10 const pointer to const pointer to int 
-    f43: a open array of array of     3 int 
-    f44: a array of     3 array of     3 int 
-    f45: a open array of array of     3 int 
-    f46: a array of     3 array of     3 int 
-    f47: a open array of array of     3 int 
-    f48: a array of     3 array of     3 int 
-    f49: a open array of array of     3 pointer to int 
-    f50: a array of     3 array of     3 pointer to int 
-    f51: a open array of array of     3 pointer to pointer to int 
-    f52: a array of     3 array of     3 pointer to pointer to int 
-    f53: a open array of array of     3 pointer to const pointer to int 
-    f54: a array of     3 array of     3 pointer to const pointer to int 
-    f55: a open array of array of     3 const pointer to const pointer to int 
-    f56: a array of     3 array of     3 const pointer to const pointer to int 
-    f57: a open array of array of     3 pointer to int 
-    f58: a array of     3 array of     3 pointer to int 
-    f59: a open array of array of     3 pointer to pointer to int 
-    f60: a array of     3 array of     3 pointer to pointer to int 
-    f61: a open array of array of     3 pointer to const pointer to int 
-    f62: a array of     3 array of     3 pointer to const pointer to int 
-    f63: a open array of array of     3 const pointer to const pointer to int 
-    f64: a array of     3 array of     3 const pointer to const pointer to int 
-    f65: a function
-      with parameters 
-        int 
-      returning int 
-
-    f66: a function
-      with parameters 
-        int 
-      returning int 
-
-    f67: a function
-      with parameters 
-        int 
-      returning pointer to int 
-
-    f68: a function
-      with parameters 
-        int 
-      returning pointer to pointer to int 
-
-    f69: a function
-      with parameters 
-        int 
-      returning pointer to const pointer to int 
-
-    f70: a function
-      with parameters 
-        int 
-      returning const pointer to const pointer to int 
-
-    f71: a function
-      with parameters 
-        int 
-      returning pointer to int 
-
-    f72: a function
-      with parameters 
-        int 
-      returning pointer to pointer to int 
-
-    f73: a function
-      with parameters 
-        int 
-      returning pointer to const pointer to int 
-
-    f74: a function
-      with parameters 
-        int 
-      returning const pointer to const pointer to int 
-
-    f75: a pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f76: a pointer to pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f77: a pointer to const pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f78: a const pointer to const pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f79: a pointer to function
-      with parameters 
-        int 
-      returning pointer to function
-          with no parameters 
-          returning int 
-
-
-    f80: a const pointer to function
-      with parameters 
-        int 
-      returning pointer to function
-          with no parameters 
-          returning int 
-
-
-    f81: a const pointer to function
-      with parameters 
-        int 
-      returning const pointer to function
-          with no parameters 
-          returning int 
-
-
-
Index: c/Tests/Parser/Expected/TypedefParamDeclarator.tst
===================================================================
--- src/Tests/Parser/Expected/TypedefParamDeclarator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,349 +1,0 @@
-f0: a typedef definition for int 
-f1: a typedef definition for int 
-f2: a typedef definition for int 
-f3: a typedef definition for int 
-f4: a typedef definition for int 
-f5: a typedef definition for int 
-f6: a typedef definition for int 
-f7: a typedef definition for int 
-f8: a typedef definition for int 
-f9: a typedef definition for int 
-f10: a typedef definition for int 
-f11: a typedef definition for int 
-f12: a typedef definition for int 
-f13: a typedef definition for int 
-f14: a typedef definition for int 
-f15: a typedef definition for int 
-f16: a typedef definition for int 
-f17: a typedef definition for int 
-f18: a typedef definition for int 
-f19: a typedef definition for int 
-f20: a typedef definition for int 
-f21: a typedef definition for int 
-f22: a typedef definition for int 
-f23: a typedef definition for int 
-f24: a typedef definition for int 
-f25: a typedef definition for int 
-f26: a typedef definition for int 
-f27: a typedef definition for int 
-f28: a typedef definition for int 
-f29: a typedef definition for int 
-f30: a typedef definition for int 
-f31: a typedef definition for int 
-f32: a typedef definition for int 
-f33: a typedef definition for int 
-f34: a typedef definition for int 
-f35: a typedef definition for int 
-f36: a typedef definition for int 
-f37: a typedef definition for int 
-f38: a typedef definition for int 
-f39: a typedef definition for int 
-f40: a typedef definition for int 
-f41: a typedef definition for int 
-f42: a typedef definition for int 
-f43: a typedef definition for int 
-f44: a typedef definition for int 
-f45: a typedef definition for int 
-f46: a typedef definition for int 
-f47: a typedef definition for int 
-f48: a typedef definition for int 
-f49: a typedef definition for int 
-f50: a typedef definition for int 
-f51: a typedef definition for int 
-f52: a typedef definition for int 
-f53: a typedef definition for int 
-f54: a typedef definition for int 
-f55: a typedef definition for int 
-f56: a typedef definition for int 
-f57: a typedef definition for int 
-f58: a typedef definition for int 
-f59: a typedef definition for int 
-f60: a typedef definition for int 
-f61: a typedef definition for int 
-f62: a typedef definition for int 
-f63: a typedef definition for int 
-f64: a typedef definition for int 
-f65: a typedef definition for int 
-f66: a typedef definition for int 
-f67: a typedef definition for int 
-f68: a typedef definition for int 
-f69: a typedef definition for int 
-f70: a typedef definition for int 
-f71: a typedef definition for int 
-f72: a typedef definition for int 
-f73: a typedef definition for int 
-f74: a typedef definition for int 
-f75: a typedef definition for int 
-f76: a typedef definition for int 
-f77: a typedef definition for int 
-f78: a typedef definition for int 
-f79: a typedef definition for int 
-f80: a typedef definition for int 
-f81: a typedef definition for int 
-f82: a typedef definition for int 
-f83: a typedef definition for int 
-f84: a typedef definition for int 
-f85: a typedef definition for int 
-f86: a typedef definition for int 
-f87: a typedef definition for int 
-f88: a typedef definition for int 
-f89: a typedef definition for int 
-f90: a typedef definition for int 
-f91: a typedef definition for int 
-f92: a typedef definition for int 
-f93: a typedef definition for int 
-f94: a typedef definition for int 
-f95: a typedef definition for int 
-f96: a typedef definition for int 
-f97: a typedef definition for int 
-f98: a typedef definition for int 
-f99: a typedef definition for int 
-f100: a typedef definition for int 
-f101: a typedef definition for int 
-f102: a typedef definition for int 
-f103: a typedef definition for int 
-f104: a typedef definition for int 
-f105: a typedef definition for int 
-f106: a typedef definition for int 
-f107: a typedef definition for int 
-f108: a typedef definition for int 
-f109: a typedef definition for int 
-f110: a typedef definition for int 
-f111: a typedef definition for int 
-f112: a typedef definition for int 
-f113: a typedef definition for int 
-f114: a typedef definition for int 
-f115: a typedef definition for int 
-f116: a typedef definition for int 
-f117: a typedef definition for int 
-f118: a typedef definition for int 
-f119: a typedef definition for int 
-fred: a function
-  with parameters 
-    f1: a int 
-    f3: a pointer to int 
-    f4: a pointer to pointer to int 
-    f5: a pointer to const pointer to int 
-    f6: a const pointer to const pointer to int 
-    f11: a pointer to int 
-    f12: a pointer to pointer to int 
-    f13: a pointer to const pointer to int 
-    f14: a const pointer to const pointer to int 
-    f15: a open array of int 
-    f16: a array of     10 int 
-    f19: a open array of pointer to int 
-    f20: a array of     10 pointer to int 
-    f21: a open array of pointer to pointer to int 
-    f22: a array of     10 pointer to pointer to int 
-    f23: a open array of pointer to const pointer to int 
-    f24: a array of     10 pointer to const pointer to int 
-    f25: a open array of const pointer to const pointer to int 
-    f26: a array of     10 const pointer to const pointer to int 
-    f35: a open array of pointer to int 
-    f36: a array of     10 pointer to int 
-    f37: a open array of pointer to pointer to int 
-    f38: a array of     10 pointer to pointer to int 
-    f39: a open array of pointer to const pointer to int 
-    f40: a array of     10 pointer to const pointer to int 
-    f41: a open array of const pointer to const pointer to int 
-    f42: a array of     10 const pointer to const pointer to int 
-    f43: a open array of array of     3 int 
-    f44: a array of     3 array of     3 int 
-    f49: a open array of array of     3 pointer to int 
-    f50: a array of     3 array of     3 pointer to int 
-    f51: a open array of array of     3 pointer to pointer to int 
-    f52: a array of     3 array of     3 pointer to pointer to int 
-    f53: a open array of array of     3 pointer to const pointer to int 
-    f54: a array of     3 array of     3 pointer to const pointer to int 
-    f55: a open array of array of     3 const pointer to const pointer to int 
-    f56: a array of     3 array of     3 const pointer to const pointer to int 
-    f57: a open array of array of     3 pointer to int 
-    f58: a array of     3 array of     3 pointer to int 
-    f59: a open array of array of     3 pointer to pointer to int 
-    f60: a array of     3 array of     3 pointer to pointer to int 
-    f61: a open array of array of     3 pointer to const pointer to int 
-    f62: a array of     3 array of     3 pointer to const pointer to int 
-    f63: a open array of array of     3 const pointer to const pointer to int 
-    f64: a array of     3 array of     3 const pointer to const pointer to int 
-    f65: a function
-      with parameters 
-        int 
-      returning int 
-
-    f67: a function
-      with parameters 
-        int 
-      returning pointer to int 
-
-    f68: a function
-      with parameters 
-        int 
-      returning pointer to pointer to int 
-
-    f69: a function
-      with parameters 
-        int 
-      returning pointer to const pointer to int 
-
-    f70: a function
-      with parameters 
-        int 
-      returning const pointer to const pointer to int 
-
-    f75: a pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f76: a pointer to pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f77: a pointer to const pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f78: a const pointer to const pointer to function
-      with parameters 
-        int 
-      returning int 
-
-    f79: a pointer to function
-      with parameters 
-        int 
-      returning pointer to function
-          with no parameters 
-          returning int 
-
-
-    f80: a const pointer to function
-      with parameters 
-        int 
-      returning pointer to function
-          with no parameters 
-          returning int 
-
-
-    f81: a const pointer to function
-      with parameters 
-        int 
-      returning const pointer to function
-          with no parameters 
-          returning int 
-
-
-    f82: a const variable-length array of int 
-    f83: a const array of     3 int 
-    f84: a static array of     3 int 
-    f85: a const static array of     3 int 
-    function
-      with parameters 
-        const variable-length array of instance of type f86
-      returning int 
-
-    function
-      with parameters 
-        const array of         3 instance of type f87
-      returning int 
-
-    function
-      with parameters 
-        static array of         3 instance of type f88
-      returning int 
-
-    function
-      with parameters 
-        const static array of         3 instance of type f89
-      returning int 
-
-    f90: a const variable-length array of pointer to int 
-    f91: a const array of     3 pointer to int 
-    f92: a static array of     3 pointer to pointer to int 
-    f93: a const static array of     3 pointer to const pointer to int 
-    f94: a const static array of     3 const pointer to const pointer to int 
-    function
-      with parameters 
-        const variable-length array of instance of type f95
-      returning pointer to int 
-
-    function
-      with parameters 
-        const array of         3 instance of type f96
-      returning pointer to int 
-
-    function
-      with parameters 
-        static array of         3 instance of type f97
-      returning pointer to pointer to int 
-
-    function
-      with parameters 
-        const static array of         3 instance of type f98
-      returning pointer to const pointer to int 
-
-    function
-      with parameters 
-        const static array of         3 instance of type f99
-      returning const pointer to const pointer to int 
-
-    f100: a const variable-length array of array of     3 int 
-    f101: a const array of     3 array of     3 int 
-    f102: a static array of     3 array of     3 int 
-    f103: a const static array of     3 array of     3 int 
-    function
-      with parameters 
-        const variable-length array of array of         3 instance of type f104
-      returning int 
-
-    function
-      with parameters 
-        const array of         3 array of         3 instance of type f105
-      returning int 
-
-    function
-      with parameters 
-        static array of         3 array of         3 instance of type f106
-      returning int 
-
-    function
-      with parameters 
-        const static array of         3 array of         3 instance of type f107
-      returning int 
-
-    f108: a const variable-length array of array of     3 pointer to int 
-    f109: a const array of     3 array of     3 pointer to int 
-    f110: a static array of     3 array of     3 pointer to pointer to int 
-    f111: a const static array of     3 array of     3 pointer to const pointer to int 
-    f112: a const static array of     3 array of     3 const pointer to const pointer to int 
-    function
-      with parameters 
-        const variable-length array of array of         3 instance of type f113
-      returning pointer to int 
-
-    function
-      with parameters 
-        const array of         3 array of         3 instance of type f114
-      returning pointer to int 
-
-    function
-      with parameters 
-        static array of         3 array of         3 instance of type f115
-      returning pointer to pointer to int 
-
-    function
-      with parameters 
-        const static array of         3 array of         3 instance of type f116
-      returning pointer to const pointer to int 
-
-    function
-      with parameters 
-        const static array of         3 array of         3 instance of type f117
-      returning const pointer to const pointer to int 
-
-  returning int 
-  with body 
-
-  Null Statement:
-
Index: c/Tests/Parser/Expected/VariableDeclarator.tst
===================================================================
--- src/Tests/Parser/Expected/VariableDeclarator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,168 +1,0 @@
-f1: a int 
-f2: a int 
-f3: a pointer to int 
-f4: a pointer to pointer to int 
-f5: a pointer to const pointer to int 
-f6: a const pointer to const pointer to int 
-f7: a pointer to int 
-f8: a pointer to pointer to int 
-f9: a pointer to const pointer to int 
-f10: a const pointer to const pointer to int 
-f11: a pointer to int 
-f12: a pointer to pointer to int 
-f13: a pointer to const pointer to int 
-f14: a const pointer to const pointer to int 
-f15: a open array of int 
-f16: a array of 10 int 
-f17: a open array of int 
-f18: a array of 10 int 
-f19: a open array of pointer to int 
-f20: a array of 10 pointer to int 
-f21: a open array of pointer to pointer to int 
-f22: a array of 10 pointer to pointer to int 
-f23: a open array of pointer to const pointer to int 
-f24: a array of 10 pointer to const pointer to int 
-f25: a open array of const pointer to const pointer to int 
-f26: a array of 10 const pointer to const pointer to int 
-f27: a open array of pointer to int 
-f28: a array of 10 pointer to int 
-f29: a open array of pointer to pointer to int 
-f30: a array of 10 pointer to pointer to int 
-f31: a open array of pointer to const pointer to int 
-f32: a array of 10 pointer to const pointer to int 
-f33: a open array of const pointer to const pointer to int 
-f34: a array of 10 const pointer to const pointer to int 
-f35: a open array of pointer to int 
-f36: a array of 10 pointer to int 
-f37: a open array of pointer to pointer to int 
-f38: a array of 10 pointer to pointer to int 
-f39: a open array of pointer to const pointer to int 
-f40: a array of 10 pointer to const pointer to int 
-f41: a open array of const pointer to const pointer to int 
-f42: a array of 10 const pointer to const pointer to int 
-f43: a open array of array of 3 int 
-f44: a array of 3 array of 3 int 
-f45: a open array of array of 3 int 
-f46: a array of 3 array of 3 int 
-f47: a open array of array of 3 int 
-f48: a array of 3 array of 3 int 
-f49: a open array of array of 3 pointer to int 
-f50: a array of 3 array of 3 pointer to int 
-f51: a open array of array of 3 pointer to pointer to int 
-f52: a array of 3 array of 3 pointer to pointer to int 
-f53: a open array of array of 3 pointer to const pointer to int 
-f54: a array of 3 array of 3 pointer to const pointer to int 
-f55: a open array of array of 3 const pointer to const pointer to int 
-f56: a array of 3 array of 3 const pointer to const pointer to int 
-f57: a open array of array of 3 pointer to int 
-f58: a array of 3 array of 3 pointer to int 
-f59: a open array of array of 3 pointer to pointer to int 
-f60: a array of 3 array of 3 pointer to pointer to int 
-f61: a open array of array of 3 pointer to const pointer to int 
-f62: a array of 3 array of 3 pointer to const pointer to int 
-f63: a open array of array of 3 const pointer to const pointer to int 
-f64: a array of 3 array of 3 const pointer to const pointer to int 
-f65: a function
-  with parameters 
-    int 
-  returning int 
-
-f66: a function
-  with parameters 
-    int 
-  returning int 
-
-f67: a function
-  with parameters 
-    int 
-  returning pointer to int 
-
-f68: a function
-  with parameters 
-    int 
-  returning pointer to pointer to int 
-
-f69: a function
-  with parameters 
-    int 
-  returning pointer to const pointer to int 
-
-f70: a function
-  with parameters 
-    int 
-  returning const pointer to const pointer to int 
-
-f71: a function
-  with parameters 
-    int 
-  returning pointer to int 
-
-f72: a function
-  with parameters 
-    int 
-  returning pointer to pointer to int 
-
-f73: a function
-  with parameters 
-    int 
-  returning pointer to const pointer to int 
-
-f74: a function
-  with parameters 
-    int 
-  returning const pointer to const pointer to int 
-
-f75: a pointer to function
-  with parameters 
-    int 
-  returning int 
-
-f76: a pointer to pointer to function
-  with parameters 
-    int 
-  returning int 
-
-f77: a pointer to const pointer to function
-  with parameters 
-    int 
-  returning int 
-
-f78: a const pointer to const pointer to function
-  with parameters 
-    int 
-  returning int 
-
-f79: a pointer to function
-  with parameters 
-    int 
-  returning pointer to function
-      with no parameters 
-      returning int 
-
-
-f80: a const pointer to function
-  with parameters 
-    int 
-  returning pointer to function
-      with no parameters 
-      returning int 
-
-
-f81: a const pointer to function
-  with parameters 
-    int 
-  returning const pointer to function
-      with no parameters 
-      returning int 
-
-
-z: a pointer to array of 20 double 
-w: a array of 20 pointer to char 
-v3: a pointer to open array of pointer to open array of pointer to function
-  with parameters 
-    pointer to open array of pointer to open array of int 
-    pointer to open array of pointer to open array of int 
-  returning tuple with members 
-      pointer to open array of pointer to open array of int 
-
-
Index: c/Tests/Parser/Makefile
===================================================================
--- src/Tests/Parser/Makefile	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,19 +1,0 @@
-CFA = ../../cfa-cpp
-
-EXPECTED = ${wildcard Expected/*.tst}
-TESTS = $(EXPECTED:Expected/%=%)
-TEST_IN = $(TESTS:.tst=.c)
-DIFF = diff
-
-%.tst:%.c $(CFA)
-	$(CFA) -nt < $< > $@ 2>&1
-
-report: $(CFA) $(TESTS) $(EXPECTED)
-	rm -f report
-	@for i in $(TESTS); do \
-	  echo "---$$i---" | tee -a report; \
-	  $(DIFF) -B -w Expected/$$i $$i | tee -a report; \
-	done
-
-clean:
-	rm -f *.tst
Index: src/Tests/Quad.c
===================================================================
--- src/Tests/Quad.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Quad.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,20 @@
+int ?=?( int *, int );
+int ?*?( int, int );
+
+forall( type T | { T ?*?( T, T ); } )
+T square( T t ) {
+	return t * t;
+}
+
+forall( type U | { U square( U ); } )
+U quad( U u ) {
+	return square( square( u ) );
+}
+
+void f() {
+	quad( 7 );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Rank2.c
===================================================================
--- src/Tests/Rank2.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Rank2.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,20 @@
+int ?=?( int *, int );
+forall(dtype DT) DT * ?=?( DT **, DT * );
+
+void a() {
+	forall( type T ) void f( T );
+	void g( forall( type U ) void p( U ) );
+	g( f );
+}
+
+void g() {
+	void h( int *null );
+	forall( type T ) T id( T );
+	forall( dtype T ) T *0;
+	int 0;
+	h( id( id( id( 0 ) ) ) );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: c/Tests/ResolvExpr/Abstype.c
===================================================================
--- src/Tests/ResolvExpr/Abstype.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,27 +1,0 @@
-type T | { T x( T ); };
-
-T y( T t ) {
-	T t_instance;
-	return x( t );
-}
-
-forall( type T ) lvalue T *?( T * );
-int ?++( int * );
-int ?=?( int *, int );
-forall( dtype DT ) DT * ?=?( DT **, DT * );
-
-type U = int *;
-
-U x( U u ) {
-	U u_instance = u;
-	(*u)++;
-	return u;
-}
-
-int *break_abstraction( U u ) {
-	return u;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/Cast.c
===================================================================
--- src/Tests/ResolvExpr/Cast.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,15 +1,0 @@
-char f;
-
-void f() {
-	char f;
-	double f;
-	(int)f;
-	short f;
-	(int)f;
-	(void(*)())f;
-	([long, long double, *[]()])([f, f, f]);
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/CastError.c
===================================================================
--- src/Tests/ResolvExpr/CastError.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,12 +1,0 @@
-int f;
-
-void f() {
-	int f;
-	double f;
-	(char)f;
-	(int(*)())f;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/Expected/Abstype.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Abstype.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,215 +1,0 @@
-T: a type
-  with assertions
-    x: a function
-        with parameters
-          instance of type T 
-        returning 
-          instance of type T 
-
-
-?=?: a automatically generated function
-    with parameters
-      _dst: a pointer to instance of type T 
-      _src: a instance of type T 
-    returning 
-      instance of type T 
-
-y: a function
-    with parameters
-      t: a instance of type T 
-    returning 
-      instance of type T 
-    with body 
-      Declaration of t_instance: a instance of type T 
-      
-        Return Statement, returning: Cast of:
-  Application of
-    Variable Expression: x: a function
-        with parameters
-          instance of type T 
-        returning 
-          instance of type T 
-
-  to arguments
-          Variable Expression: t: a instance of type T 
-
-
-to:
-  instance of type T 
-with environment:
-  Types:
-  Non-types:
-
-
-
-*?: a forall
-      T: a type
-        with assertions
-          ?=?: a pointer to function
-              with parameters
-                pointer to instance of type T 
-                instance of type T 
-              returning 
-                instance of type T 
-
-
-    function
-    with parameters
-      pointer to instance of type T 
-    returning 
-      lvalue instance of type T 
-
-?++: a function
-    with parameters
-      pointer to signed int 
-    returning 
-      signed int 
-
-?=?: a function
-    with parameters
-      pointer to signed int 
-      signed int 
-    returning 
-      signed int 
-
-?=?: a forall
-      DT: a incomplete type
-    function
-    with parameters
-      pointer to pointer to instance of type DT 
-      pointer to instance of type DT 
-    returning 
-      pointer to instance of type DT 
-
-U: a type for pointer to signed int 
-?=?: a automatically generated function
-    with parameters
-      _dst: a pointer to instance of type U 
-      _src: a instance of type U 
-    returning 
-      instance of type U 
-    with body 
-      
-        Return Statement, returning: Cast of:
-  Application of
-    Variable Expression: ?=?: a forall
-          DT: a incomplete type
-        function
-        with parameters
-          pointer to pointer to instance of type DT 
-          pointer to instance of type DT 
-        returning 
-          pointer to instance of type DT 
-
-  to arguments
-          Cast of:
-        Variable Expression: _dst: a pointer to instance of type U 
-
-      to:
-        pointer to pointer to signed int 
-
-          Cast of:
-        Variable Expression: _src: a instance of type U 
-
-      to:
-        pointer to signed int 
-
-
-to:
-  instance of type U 
-with environment:
-  Types:
-    _0_DT -> signed int 
-  Non-types:
-
-
-
-x: a function
-    with parameters
-      u: a instance of type U 
-    returning 
-      instance of type U 
-    with body 
-      Declaration of u_instance: a instance of type U with initializer 
-        Simple Initializer:           Name: u
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?++: a function
-                with parameters
-                  pointer to signed int 
-                returning 
-                  signed int 
-
-          to arguments
-                          Address of:
-                Application of
-                  Variable Expression: *?: a forall
-                        T: a type
-                          with assertions
-                            ?=?: a pointer to function
-                                with parameters
-                                  pointer to instance of type T 
-                                  instance of type T 
-                                returning 
-                                  instance of type T 
-
-
-                      function
-                      with parameters
-                        pointer to instance of type T 
-                      returning 
-                        lvalue instance of type T 
-
-                to arguments
-                                      Cast of:
-                      Variable Expression: u: a instance of type U 
-
-                    to:
-                      pointer to signed int 
-
-                with inferred parameters:
-                  ?=?: a function
-                    with parameters
-                      pointer to signed int 
-                      signed int 
-                    returning 
-                      signed int 
-
-
-          with environment:
-            Types:
-              _0_T -> signed int 
-            Non-types:
-
-      
-        Return Statement, returning: Cast of:
-  Variable Expression: u: a instance of type U 
-
-to:
-  instance of type U 
-with environment:
-  Types:
-  Non-types:
-
-
-
-break_abstraction: a function
-    with parameters
-      u: a instance of type U 
-    returning 
-      pointer to signed int 
-    with body 
-      
-        Return Statement, returning: Cast of:
-  Variable Expression: u: a instance of type U 
-
-to:
-  pointer to signed int 
-with environment:
-  Types:
-  Non-types:
-
-
-
Index: c/Tests/ResolvExpr/Expected/Attributes.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Attributes.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,70 +1,0 @@
-@voon: a signed int 
-@voon: a double 
-@bort: a function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-@bort: a function
-    with parameters
-      double 
-    returning 
-      signed int 
-
-g: a function
-    with parameters
-      signed int 
-    returning 
-      nothing 
-
-f: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of x: a float 
-      Declaration of x: a double 
-      
-        Expression Statement:
-          Attr             Variable Expression: @bort: a function
-                with parameters
-                  double 
-                returning 
-                  signed int 
-
-applied to: lvalue double 
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Attr             Variable Expression: @bort: a function
-                with parameters
-                  signed int 
-                returning 
-                  signed int 
-
-applied to: signed int 
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: g: a function
-                with parameters
-                  signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Variable Expression: @voon: a signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/Cast.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Cast.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,78 +1,0 @@
-f: a char 
-f: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of f: a char 
-      Declaration of f: a double 
-      
-        Expression Statement:
-          Cast of:
-            Variable Expression: f: a char 
-
-          to:
-            signed int 
-          with environment:
-            Types:
-            Non-types:
-
-      Declaration of f: a short signed int 
-      
-        Expression Statement:
-          Cast of:
-            Variable Expression: f: a short signed int 
-
-          to:
-            signed int 
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Cast of:
-            Variable Expression: f: a function
-                  accepting unspecified arguments
-                returning 
-                  nothing 
-
-
-          to:
-            pointer to function
-                  accepting unspecified arguments
-                returning 
-                  nothing 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Cast of:
-            Tuple:
-                              Variable Expression: f: a short signed int 
-
-                              Variable Expression: f: a double 
-
-                              Variable Expression: f: a function
-                      accepting unspecified arguments
-                    returning 
-                      nothing 
-
-
-
-          to:
-            long signed int 
-            long double 
-            pointer to function
-                  accepting unspecified arguments
-                returning 
-                  nothing 
-
-          with environment:
-            Types:
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/CastError.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/CastError.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,94 +1,0 @@
-Error: Can't choose between alternatives for expression Cast of:
-  Name: f
-
-to:
-  char 
-Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
-          Variable Expression: f: a signed int 
-
-        to:
-          char 
-(types:
-            char 
-)
-        Environment: 
-
-        Cost ( 1, 0, 0 ):         Cast of:
-          Variable Expression: f: a double 
-
-        to:
-          char 
-(types:
-            char 
-)
-        Environment: 
-
-
-Error: Can't choose between alternatives for expression Cast of:
-  Name: f
-
-to:
-  pointer to function
-        accepting unspecified arguments
-      returning 
-        signed int 
-
-Alternatives are:        Cost ( 1, 0, 0 ):         Cast of:
-          Variable Expression: f: a function
-                accepting unspecified arguments
-              returning 
-                nothing 
-
-
-        to:
-          pointer to function
-                accepting unspecified arguments
-              returning 
-                signed int 
-
-(types:
-            pointer to function
-                  accepting unspecified arguments
-                returning 
-                  signed int 
-
-)
-        Environment: 
-
-        Cost ( 1, 0, 0 ):         Cast of:
-          Variable Expression: f: a signed int 
-
-        to:
-          pointer to function
-                accepting unspecified arguments
-              returning 
-                signed int 
-
-(types:
-            pointer to function
-                  accepting unspecified arguments
-                returning 
-                  signed int 
-
-)
-        Environment: 
-
-        Cost ( 1, 0, 0 ):         Cast of:
-          Variable Expression: f: a double 
-
-        to:
-          pointer to function
-                accepting unspecified arguments
-              returning 
-                signed int 
-
-(types:
-            pointer to function
-                  accepting unspecified arguments
-                returning 
-                  signed int 
-
-)
-        Environment: 
-
-
Index: c/Tests/ResolvExpr/Expected/Forall.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Forall.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,495 +1,0 @@
-?=?: a function
-    with parameters
-      pointer to signed int 
-      signed int 
-    returning 
-      signed int 
-
-?=?: a function
-    with parameters
-      pointer to float 
-      float 
-    returning 
-      float 
-
-?=?: a function
-    with parameters
-      pointer to pointer to signed int 
-      pointer to signed int 
-    returning 
-      pointer to signed int 
-
-?=?: a function
-    with parameters
-      pointer to pointer to float 
-      pointer to float 
-    returning 
-      pointer to float 
-
-?=?: a function
-    with parameters
-      pointer to char 
-      char 
-    returning 
-      char 
-
-?=?: a function
-    with parameters
-      pointer to pointer to function
-          returning 
-            nothing 
-
-      pointer to function
-          returning 
-            nothing 
-
-    returning 
-      pointer to function
-          returning 
-            nothing 
-
-
-g1: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of f: a forall
-            T: a type
-              with assertions
-                ?=?: a pointer to function
-                    with parameters
-                      pointer to instance of type T 
-                      instance of type T 
-                    returning 
-                      instance of type T 
-
-
-          function
-          with parameters
-            instance of type T 
-          returning 
-            instance of type T 
-
-      Declaration of f: a function
-          with parameters
-            signed int 
-          returning 
-            nothing 
-
-      Declaration of h: a function
-          with parameters
-            p: a pointer to function
-                returning 
-                  nothing 
-
-          returning 
-            nothing 
-
-      Declaration of x: a signed int 
-      Declaration of y: a pointer to function
-          returning 
-            nothing 
-
-      Declaration of z: a char 
-      Declaration of w: a float 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: f: a function
-                with parameters
-                  signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Variable Expression: x: a signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: f: a forall
-                  T: a type
-                    with assertions
-                      ?=?: a pointer to function
-                          with parameters
-                            pointer to instance of type T 
-                            instance of type T 
-                          returning 
-                            instance of type T 
-
-
-                function
-                with parameters
-                  instance of type T 
-                returning 
-                  instance of type T 
-
-          to arguments
-                          Variable Expression: y: a pointer to function
-                  returning 
-                    nothing 
-
-
-          with inferred parameters:
-            ?=?: a function
-              with parameters
-                pointer to pointer to function
-                    returning 
-                      nothing 
-
-                pointer to function
-                    returning 
-                      nothing 
-
-              returning 
-                pointer to function
-                    returning 
-                      nothing 
-
-
-          with environment:
-            Types:
-              _0_T -> pointer to function
-                  returning 
-                    nothing 
-
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: f: a function
-                with parameters
-                  signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Cast of:
-                Variable Expression: z: a char 
-
-              to:
-                signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: f: a forall
-                  T: a type
-                    with assertions
-                      ?=?: a pointer to function
-                          with parameters
-                            pointer to instance of type T 
-                            instance of type T 
-                          returning 
-                            instance of type T 
-
-
-                function
-                with parameters
-                  instance of type T 
-                returning 
-                  instance of type T 
-
-          to arguments
-                          Variable Expression: w: a float 
-
-          with inferred parameters:
-            ?=?: a function
-              with parameters
-                pointer to float 
-                float 
-              returning 
-                float 
-
-          with environment:
-            Types:
-              _0_T -> float 
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: h: a function
-                with parameters
-                  p: a pointer to function
-                      returning 
-                        nothing 
-
-                returning 
-                  nothing 
-
-          to arguments
-                          Application of
-                Variable Expression: f: a forall
-                      T: a type
-                        with assertions
-                          ?=?: a pointer to function
-                              with parameters
-                                pointer to instance of type T 
-                                instance of type T 
-                              returning 
-                                instance of type T 
-
-
-                    function
-                    with parameters
-                      instance of type T 
-                    returning 
-                      instance of type T 
-
-              to arguments
-                                  Variable Expression: y: a pointer to function
-                      returning 
-                        nothing 
-
-
-              with inferred parameters:
-                ?=?: a function
-                  with parameters
-                    pointer to pointer to function
-                        returning 
-                          nothing 
-
-                    pointer to function
-                        returning 
-                          nothing 
-
-                  returning 
-                    pointer to function
-                        returning 
-                          nothing 
-
-
-
-          with environment:
-            Types:
-              _0_T -> pointer to function
-                  returning 
-                    nothing 
-
-            Non-types:
-
-
-g2: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of f: a forall
-            T: a type
-              with assertions
-                ?=?: a pointer to function
-                    with parameters
-                      pointer to instance of type T 
-                      instance of type T 
-                    returning 
-                      instance of type T 
-
-
-          function
-          with parameters
-            instance of type T 
-            instance of type T 
-          returning 
-            nothing 
-
-      Declaration of f: a forall
-            T: a type
-              with assertions
-                ?=?: a pointer to function
-                    with parameters
-                      pointer to instance of type T 
-                      instance of type T 
-                    returning 
-                      instance of type T 
-
-
-            U: a type
-              with assertions
-                ?=?: a pointer to function
-                    with parameters
-                      pointer to instance of type U 
-                      instance of type U 
-                    returning 
-                      instance of type U 
-
-
-          function
-          with parameters
-            instance of type T 
-            instance of type U 
-          returning 
-            nothing 
-
-      Declaration of x: a signed int 
-      Declaration of y: a float 
-      Declaration of z: a pointer to signed int 
-      Declaration of w: a pointer to float 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: f: a forall
-                  T: a type
-                    with assertions
-                      ?=?: a pointer to function
-                          with parameters
-                            pointer to instance of type T 
-                            instance of type T 
-                          returning 
-                            instance of type T 
-
-
-                function
-                with parameters
-                  instance of type T 
-                  instance of type T 
-                returning 
-                  nothing 
-
-          to arguments
-                          Cast of:
-                Variable Expression: x: a signed int 
-
-              to:
-                float 
-
-                          Variable Expression: y: a float 
-
-          with inferred parameters:
-            ?=?: a function
-              with parameters
-                pointer to float 
-                float 
-              returning 
-                float 
-
-          with environment:
-            Types:
-              _0_T -> float 
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: f: a forall
-                  T: a type
-                    with assertions
-                      ?=?: a pointer to function
-                          with parameters
-                            pointer to instance of type T 
-                            instance of type T 
-                          returning 
-                            instance of type T 
-
-
-                  U: a type
-                    with assertions
-                      ?=?: a pointer to function
-                          with parameters
-                            pointer to instance of type U 
-                            instance of type U 
-                          returning 
-                            instance of type U 
-
-
-                function
-                with parameters
-                  instance of type T 
-                  instance of type U 
-                returning 
-                  nothing 
-
-          to arguments
-                          Variable Expression: z: a pointer to signed int 
-
-                          Variable Expression: w: a pointer to float 
-
-          with inferred parameters:
-            ?=?: a function
-              with parameters
-                pointer to pointer to signed int 
-                pointer to signed int 
-              returning 
-                pointer to signed int 
-
-            ?=?: a function
-              with parameters
-                pointer to pointer to float 
-                pointer to float 
-              returning 
-                pointer to float 
-
-          with environment:
-            Types:
-              _1_T -> pointer to signed int 
-              _2_U -> pointer to float 
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: f: a forall
-                  T: a type
-                    with assertions
-                      ?=?: a pointer to function
-                          with parameters
-                            pointer to instance of type T 
-                            instance of type T 
-                          returning 
-                            instance of type T 
-
-
-                  U: a type
-                    with assertions
-                      ?=?: a pointer to function
-                          with parameters
-                            pointer to instance of type U 
-                            instance of type U 
-                          returning 
-                            instance of type U 
-
-
-                function
-                with parameters
-                  instance of type T 
-                  instance of type U 
-                returning 
-                  nothing 
-
-          to arguments
-                          Variable Expression: x: a signed int 
-
-                          Variable Expression: z: a pointer to signed int 
-
-          with inferred parameters:
-            ?=?: a function
-              with parameters
-                pointer to signed int 
-                signed int 
-              returning 
-                signed int 
-
-            ?=?: a function
-              with parameters
-                pointer to pointer to signed int 
-                pointer to signed int 
-              returning 
-                pointer to signed int 
-
-          with environment:
-            Types:
-              _1_T -> signed int 
-              _2_U -> pointer to signed int 
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/Function.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Function.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,249 +1,0 @@
-a: a signed int 
-a: a float 
-f: a function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f: a function
-    with parameters
-      float 
-    returning 
-      float 
-
-g: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: f: a function
-                with parameters
-                  signed int 
-                returning 
-                  signed int 
-
-          to arguments
-                          Cast of:
-                Variable Expression: a: a signed int 
-
-              to:
-                signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Cast of:
-            Application of
-              Variable Expression: f: a function
-                  with parameters
-                    signed int 
-                  returning 
-                    signed int 
-
-            to arguments
-                              Variable Expression: a: a signed int 
-
-
-          to:
-            signed int 
-          with environment:
-            Types:
-            Non-types:
-
-
-p: a tuple of types
-    signed int 
-
-p: a tuple of types
-    signed int 
-    double 
-
-p: a tuple of types
-    signed int 
-    signed int 
-    signed int 
-
-p: a tuple of types
-    signed int 
-    signed int 
-    signed int 
-    signed int 
-
-q: a tuple of types
-    char 
-
-q: a tuple of types
-    signed int 
-    signed int 
-
-q: a tuple of types
-    signed int 
-    signed int 
-    float 
-
-q: a tuple of types
-    signed int 
-    signed int 
-    signed int 
-    signed int 
-
-r: a function
-    with parameters
-      signed int 
-      signed int 
-      signed int 
-      signed int 
-    returning 
-      signed int 
-      signed int 
-
-s: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: r: a function
-                with parameters
-                  signed int 
-                  signed int 
-                  signed int 
-                  signed int 
-                returning 
-                  signed int 
-                  signed int 
-
-          to arguments
-                          Variable Expression: p: a tuple of types
-                  signed int 
-                  signed int 
-                  signed int 
-
-
-                          Cast of:
-                Variable Expression: q: a tuple of types
-                    char 
-
-
-              to:
-                signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: r: a function
-                with parameters
-                  signed int 
-                  signed int 
-                  signed int 
-                  signed int 
-                returning 
-                  signed int 
-                  signed int 
-
-          to arguments
-                          Cast of:
-                Tuple:
-                                      Variable Expression: q: a tuple of types
-                        char 
-
-
-                                      Variable Expression: p: a tuple of types
-                        signed int 
-                        signed int 
-                        signed int 
-
-
-
-              to:
-                signed int 
-                signed int 
-                signed int 
-                signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: r: a function
-                with parameters
-                  signed int 
-                  signed int 
-                  signed int 
-                  signed int 
-                returning 
-                  signed int 
-                  signed int 
-
-          to arguments
-                          Application of
-                Variable Expression: r: a function
-                    with parameters
-                      signed int 
-                      signed int 
-                      signed int 
-                      signed int 
-                    returning 
-                      signed int 
-                      signed int 
-
-              to arguments
-                                  Variable Expression: p: a tuple of types
-                      signed int 
-                      signed int 
-                      signed int 
-
-
-                                  Cast of:
-                    Variable Expression: q: a tuple of types
-                        char 
-
-
-                  to:
-                    signed int 
-
-
-                          Application of
-                Variable Expression: r: a function
-                    with parameters
-                      signed int 
-                      signed int 
-                      signed int 
-                      signed int 
-                    returning 
-                      signed int 
-                      signed int 
-
-              to arguments
-                                  Variable Expression: q: a tuple of types
-                      signed int 
-                      signed int 
-
-
-                                  Variable Expression: q: a tuple of types
-                      signed int 
-                      signed int 
-
-
-
-          with environment:
-            Types:
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/InferParam.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/InferParam.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,317 +1,0 @@
-?=?: a function
-    with parameters
-      pointer to signed int 
-      signed int 
-    returning 
-      signed int 
-
-?=?: a function
-    with parameters
-      pointer to float 
-      float 
-    returning 
-      float 
-
-?=?: a function
-    with parameters
-      pointer to double 
-      double 
-    returning 
-      double 
-
-g: a forall
-      T: a type
-        with assertions
-          ?=?: a pointer to function
-              with parameters
-                pointer to instance of type T 
-                instance of type T 
-              returning 
-                instance of type T 
-
-
-      U: a type
-        with assertions
-          ?=?: a pointer to function
-              with parameters
-                pointer to instance of type U 
-                instance of type U 
-              returning 
-                instance of type U 
-
-          f: a pointer to function
-              with parameters
-                instance of type T 
-              returning 
-                instance of type U 
-
-
-    function
-    with parameters
-      instance of type T 
-    returning 
-      instance of type U 
-
-f: a function
-    with parameters
-      signed int 
-    returning 
-      float 
-
-f: a function
-    with parameters
-      signed int 
-    returning 
-      double 
-
-i: a function
-    with parameters
-      float 
-    returning 
-      nothing 
-
-h: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of a: a signed int 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: i: a function
-                with parameters
-                  float 
-                returning 
-                  nothing 
-
-          to arguments
-                          Application of
-                Variable Expression: g: a forall
-                      T: a type
-                        with assertions
-                          ?=?: a pointer to function
-                              with parameters
-                                pointer to instance of type T 
-                                instance of type T 
-                              returning 
-                                instance of type T 
-
-
-                      U: a type
-                        with assertions
-                          ?=?: a pointer to function
-                              with parameters
-                                pointer to instance of type U 
-                                instance of type U 
-                              returning 
-                                instance of type U 
-
-                          f: a pointer to function
-                              with parameters
-                                instance of type T 
-                              returning 
-                                instance of type U 
-
-
-                    function
-                    with parameters
-                      instance of type T 
-                    returning 
-                      instance of type U 
-
-              to arguments
-                                  Variable Expression: a: a signed int 
-
-              with inferred parameters:
-                ?=?: a function
-                  with parameters
-                    pointer to signed int 
-                    signed int 
-                  returning 
-                    signed int 
-
-                ?=?: a function
-                  with parameters
-                    pointer to float 
-                    float 
-                  returning 
-                    float 
-
-                f: a function
-                  with parameters
-                    signed int 
-                  returning 
-                    float 
-
-
-          with environment:
-            Types:
-              _0_T -> signed int 
-              _1_U -> float 
-            Non-types:
-
-
-context has_f_and_j
-    with parameters
-      T: a type
-      U: a type
-
-    with members
-      f: a function
-          with parameters
-            instance of type T 
-          returning 
-            instance of type U 
-
-      j: a function
-          with parameters
-            instance of type T 
-            instance of type U 
-          returning 
-            instance of type U 
-
-
-j: a function
-    with parameters
-      signed int 
-      float 
-    returning 
-      float 
-
-k: a forall
-      T: a type
-        with assertions
-          ?=?: a pointer to function
-              with parameters
-                pointer to instance of type T 
-                instance of type T 
-              returning 
-                instance of type T 
-
-
-      U: a type
-        with assertions
-          ?=?: a pointer to function
-              with parameters
-                pointer to instance of type U 
-                instance of type U 
-              returning 
-                instance of type U 
-
-          f: a pointer to function
-              with parameters
-                instance of type T 
-              returning 
-                instance of type U 
-
-          j: a pointer to function
-              with parameters
-                instance of type T 
-                instance of type U 
-              returning 
-                instance of type U 
-
-
-    function
-    with parameters
-      instance of type T 
-    returning 
-      instance of type U 
-
-l: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of b: a signed int 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: i: a function
-                with parameters
-                  float 
-                returning 
-                  nothing 
-
-          to arguments
-                          Application of
-                Variable Expression: k: a forall
-                      T: a type
-                        with assertions
-                          ?=?: a pointer to function
-                              with parameters
-                                pointer to instance of type T 
-                                instance of type T 
-                              returning 
-                                instance of type T 
-
-
-                      U: a type
-                        with assertions
-                          ?=?: a pointer to function
-                              with parameters
-                                pointer to instance of type U 
-                                instance of type U 
-                              returning 
-                                instance of type U 
-
-                          f: a pointer to function
-                              with parameters
-                                instance of type T 
-                              returning 
-                                instance of type U 
-
-                          j: a pointer to function
-                              with parameters
-                                instance of type T 
-                                instance of type U 
-                              returning 
-                                instance of type U 
-
-
-                    function
-                    with parameters
-                      instance of type T 
-                    returning 
-                      instance of type U 
-
-              to arguments
-                                  Variable Expression: b: a signed int 
-
-              with inferred parameters:
-                ?=?: a function
-                  with parameters
-                    pointer to signed int 
-                    signed int 
-                  returning 
-                    signed int 
-
-                ?=?: a function
-                  with parameters
-                    pointer to float 
-                    float 
-                  returning 
-                    float 
-
-                f: a function
-                  with parameters
-                    signed int 
-                  returning 
-                    float 
-
-                j: a function
-                  with parameters
-                    signed int 
-                    float 
-                  returning 
-                    float 
-
-
-          with environment:
-            Types:
-              _0_T -> signed int 
-              _1_U -> float 
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/Members.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Members.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,666 +1,0 @@
-?=?: a function
-    with parameters
-      pointer to char 
-      char 
-    returning 
-      char 
-
-?=?: a function
-    with parameters
-      pointer to signed int 
-      signed int 
-    returning 
-      signed int 
-
-?=?: a function
-    with parameters
-      pointer to float 
-      float 
-    returning 
-      float 
-
-?=?: a forall
-      DT: a incomplete type
-    function
-    with parameters
-      pointer to pointer to instance of type DT 
-      pointer to instance of type DT 
-    returning 
-      pointer to instance of type DT 
-
-*?: a forall
-      T: a type
-        with assertions
-          ?=?: a pointer to function
-              with parameters
-                pointer to instance of type T 
-                instance of type T 
-              returning 
-                instance of type T 
-
-
-    function
-    with parameters
-      pointer to instance of type T 
-    returning 
-      lvalue instance of type T 
-
-__builtin_memcpy: a function
-      accepting unspecified arguments
-    returning 
-      pointer to char 
-
-a: a function
-    with parameters
-      char 
-    returning 
-      nothing 
-
-b: a function
-    with parameters
-      signed int 
-    returning 
-      nothing 
-
-c: a function
-    with parameters
-      pointer to signed int 
-    returning 
-      nothing 
-
-d: a function
-    with parameters
-      pointer to float 
-    returning 
-      nothing 
-
-struct a_struct
-    with members
-      a: a signed int 
-      a: a char 
-      a: a float 
-
-?=?: a automatically generated inline static function
-    with parameters
-      _dst: a pointer to instance of struct a_struct 
-      _src: a instance of struct a_struct 
-    returning 
-      instance of struct a_struct 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?=?: a function
-                with parameters
-                  pointer to signed int 
-                  signed int 
-                returning 
-                  signed int 
-
-          to arguments
-                          Address of:
-                Member Expression, with field: 
-                  a: a signed int 
-                from aggregate: 
-                  Applying untyped: 
-                      Name: *?
-
-                  ...to: 
-                      Variable Expression: _dst: a pointer to instance of struct a_struct 
-
-                          Member Expression, with field: 
-                a: a signed int 
-              from aggregate: 
-                Variable Expression: _src: a instance of struct a_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?=?: a function
-                with parameters
-                  pointer to char 
-                  char 
-                returning 
-                  char 
-
-          to arguments
-                          Address of:
-                Member Expression, with field: 
-                  a: a char 
-                from aggregate: 
-                  Applying untyped: 
-                      Name: *?
-
-                  ...to: 
-                      Variable Expression: _dst: a pointer to instance of struct a_struct 
-
-                          Member Expression, with field: 
-                a: a char 
-              from aggregate: 
-                Variable Expression: _src: a instance of struct a_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?=?: a function
-                with parameters
-                  pointer to float 
-                  float 
-                returning 
-                  float 
-
-          to arguments
-                          Address of:
-                Member Expression, with field: 
-                  a: a float 
-                from aggregate: 
-                  Applying untyped: 
-                      Name: *?
-
-                  ...to: 
-                      Variable Expression: _dst: a pointer to instance of struct a_struct 
-
-                          Member Expression, with field: 
-                a: a float 
-              from aggregate: 
-                Variable Expression: _src: a instance of struct a_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Return Statement, returning: Cast of:
-  Variable Expression: _src: a instance of struct a_struct 
-
-to:
-  instance of struct a_struct 
-with environment:
-  Types:
-  Non-types:
-
-
-
-union b_struct
-    with members
-      a: a pointer to signed int 
-      a: a pointer to char 
-      a: a pointer to float 
-
-?=?: a automatically generated inline static function
-    with parameters
-      _dst: a pointer to instance of union b_struct 
-      _src: a instance of union b_struct 
-    returning 
-      instance of union b_struct 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: __builtin_memcpy: a function
-                  accepting unspecified arguments
-                returning 
-                  pointer to char 
-
-          to arguments
-                          Variable Expression: _dst: a pointer to instance of union b_struct 
-
-                          Address of:
-                Variable Expression: _src: a instance of union b_struct 
-
-                          Sizeof Expression on: instance of union b_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Return Statement, returning: Cast of:
-  Variable Expression: _src: a instance of union b_struct 
-
-to:
-  instance of union b_struct 
-with environment:
-  Types:
-  Non-types:
-
-
-
-f: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of the_struct: a instance of struct a_struct 
-      Declaration of the_struct: a instance of union b_struct 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: a: a function
-                with parameters
-                  char 
-                returning 
-                  nothing 
-
-          to arguments
-                          Member Expression, with field: 
-                a: a char 
-              from aggregate: 
-                Variable Expression: the_struct: a instance of struct a_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: b: a function
-                with parameters
-                  signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Member Expression, with field: 
-                a: a signed int 
-              from aggregate: 
-                Variable Expression: the_struct: a instance of struct a_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: c: a function
-                with parameters
-                  pointer to signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Member Expression, with field: 
-                a: a pointer to signed int 
-              from aggregate: 
-                Variable Expression: the_struct: a instance of union b_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: d: a function
-                with parameters
-                  pointer to float 
-                returning 
-                  nothing 
-
-          to arguments
-                          Member Expression, with field: 
-                a: a pointer to float 
-              from aggregate: 
-                Variable Expression: the_struct: a instance of union b_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-
-struct c_struct
-    with members
-      signed int 
-      char 
-      float 
-
-?=?: a automatically generated inline static function
-    with parameters
-      _dst: a pointer to instance of struct c_struct 
-      _src: a instance of struct c_struct 
-    returning 
-      instance of struct c_struct 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?=?: a function
-                with parameters
-                  pointer to signed int 
-                  signed int 
-                returning 
-                  signed int 
-
-          to arguments
-                          Address of:
-                Member Expression, with field: 
-                  signed int 
-                from aggregate: 
-                  Applying untyped: 
-                      Name: *?
-
-                  ...to: 
-                      Variable Expression: _dst: a pointer to instance of struct c_struct 
-
-                          Member Expression, with field: 
-                signed int 
-              from aggregate: 
-                Variable Expression: _src: a instance of struct c_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?=?: a function
-                with parameters
-                  pointer to char 
-                  char 
-                returning 
-                  char 
-
-          to arguments
-                          Address of:
-                Member Expression, with field: 
-                  char 
-                from aggregate: 
-                  Applying untyped: 
-                      Name: *?
-
-                  ...to: 
-                      Variable Expression: _dst: a pointer to instance of struct c_struct 
-
-                          Member Expression, with field: 
-                char 
-              from aggregate: 
-                Variable Expression: _src: a instance of struct c_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?=?: a function
-                with parameters
-                  pointer to float 
-                  float 
-                returning 
-                  float 
-
-          to arguments
-                          Address of:
-                Member Expression, with field: 
-                  float 
-                from aggregate: 
-                  Applying untyped: 
-                      Name: *?
-
-                  ...to: 
-                      Variable Expression: _dst: a pointer to instance of struct c_struct 
-
-                          Member Expression, with field: 
-                float 
-              from aggregate: 
-                Variable Expression: _src: a instance of struct c_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Return Statement, returning: Cast of:
-  Variable Expression: _src: a instance of struct c_struct 
-
-to:
-  instance of struct c_struct 
-with environment:
-  Types:
-  Non-types:
-
-
-
-union d_struct
-    with members
-      pointer to signed int 
-      pointer to char 
-      pointer to float 
-
-?=?: a automatically generated inline static function
-    with parameters
-      _dst: a pointer to instance of union d_struct 
-      _src: a instance of union d_struct 
-    returning 
-      instance of union d_struct 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: __builtin_memcpy: a function
-                  accepting unspecified arguments
-                returning 
-                  pointer to char 
-
-          to arguments
-                          Variable Expression: _dst: a pointer to instance of union d_struct 
-
-                          Address of:
-                Variable Expression: _src: a instance of union d_struct 
-
-                          Sizeof Expression on: instance of union d_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Return Statement, returning: Cast of:
-  Variable Expression: _src: a instance of union d_struct 
-
-to:
-  instance of union d_struct 
-with environment:
-  Types:
-  Non-types:
-
-
-
-g: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of x: a short unsigned int 
-      Declaration of x: a instance of struct c_struct 
-      Declaration of x: a instance of union d_struct 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: a: a function
-                with parameters
-                  char 
-                returning 
-                  nothing 
-
-          to arguments
-                          Cast of:
-                Variable Expression: x: a short unsigned int 
-
-              to:
-                char 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: b: a function
-                with parameters
-                  signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Cast of:
-                Variable Expression: x: a short unsigned int 
-
-              to:
-                signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: c: a function
-                with parameters
-                  pointer to signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Member Expression, with field: 
-                pointer to signed int 
-              from aggregate: 
-                Variable Expression: x: a instance of union d_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: d: a function
-                with parameters
-                  pointer to float 
-                returning 
-                  nothing 
-
-          to arguments
-                          Member Expression, with field: 
-                pointer to float 
-              from aggregate: 
-                Variable Expression: x: a instance of union d_struct 
-
-          with environment:
-            Types:
-            Non-types:
-
-
-struct forward
-q: a pointer to instance of struct forward 
-struct forward
-    with members
-      y: a signed int 
-
-?=?: a automatically generated inline static function
-    with parameters
-      _dst: a pointer to instance of struct forward 
-      _src: a instance of struct forward 
-    returning 
-      instance of struct forward 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?=?: a function
-                with parameters
-                  pointer to signed int 
-                  signed int 
-                returning 
-                  signed int 
-
-          to arguments
-                          Address of:
-                Member Expression, with field: 
-                  y: a signed int 
-                from aggregate: 
-                  Applying untyped: 
-                      Name: *?
-
-                  ...to: 
-                      Variable Expression: _dst: a pointer to instance of struct forward 
-
-                          Member Expression, with field: 
-                y: a signed int 
-              from aggregate: 
-                Variable Expression: _src: a instance of struct forward 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Return Statement, returning: Cast of:
-  Variable Expression: _src: a instance of struct forward 
-
-to:
-  instance of struct forward 
-with environment:
-  Types:
-  Non-types:
-
-
-
-h: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      
-        Expression Statement:
-          Member Expression, with field: 
-            y: a signed int 
-          from aggregate: 
-            Application of
-              Variable Expression: *?: a forall
-                    T: a type
-                      with assertions
-                        ?=?: a pointer to function
-                            with parameters
-                              pointer to instance of type T 
-                              instance of type T 
-                            returning 
-                              instance of type T 
-
-
-                  function
-                  with parameters
-                    pointer to instance of type T 
-                  returning 
-                    lvalue instance of type T 
-
-            to arguments
-                              Variable Expression: q: a pointer to instance of struct forward 
-
-            with inferred parameters:
-              ?=?: a inline static function
-                with parameters
-                  _dst: a pointer to instance of struct forward 
-                  _src: a instance of struct forward 
-                returning 
-                  instance of struct forward 
-
-          with environment:
-            Types:
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/Misc.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Misc.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,94 +1,0 @@
-a: a signed int 
-b: a signed int 
-b: a float 
-g: a function
-    with parameters
-      signed int 
-    returning 
-      nothing 
-
-g: a function
-    with parameters
-      unsigned int 
-    returning 
-      nothing 
-
-f: a function
-    returning 
-      nothing 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: g: a function
-                with parameters
-                  signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Comma Expression:
-                Variable Expression: a: a signed int 
-
-                Variable Expression: b: a signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: g: a function
-                with parameters
-                  signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Comma Expression:
-                Comma Expression:
-                  Variable Expression: a: a signed int 
-
-                  Variable Expression: a: a signed int 
-
-                Variable Expression: b: a signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: g: a function
-                with parameters
-                  unsigned int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Sizeof Expression on:                 Variable Expression: a: a signed int 
-
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: g: a function
-                with parameters
-                  unsigned int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Sizeof Expression on: signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/MiscError.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/MiscError.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,83 +1,0 @@
-Error: Can't choose between alternatives for expression Cast of:
-  Name: b
-
-to:
-  nothing
-Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
-          Variable Expression: b: a signed int 
-
-        to:
-          nothing
-(types:
-)
-        Environment: 
-
-        Cost ( 0, 0, 1 ):         Cast of:
-          Variable Expression: b: a float 
-
-        to:
-          nothing
-(types:
-)
-        Environment: 
-
-
-Error: Can't choose between alternatives for expression Cast of:
-  Name: b
-
-to:
-  nothing
-Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
-          Variable Expression: b: a signed int 
-
-        to:
-          nothing
-(types:
-)
-        Environment: 
-
-        Cost ( 0, 0, 1 ):         Cast of:
-          Variable Expression: b: a float 
-
-        to:
-          nothing
-(types:
-)
-        Environment: 
-
-
-Error: Can't choose between alternatives for expression Cast of:
-  Comma Expression:
-    Name: a
-
-    Name: b
-
-to:
-  nothing
-Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
-          Comma Expression:
-            Variable Expression: a: a signed int 
-
-            Variable Expression: b: a signed int 
-
-        to:
-          nothing
-(types:
-)
-        Environment: 
-
-        Cost ( 0, 0, 1 ):         Cast of:
-          Comma Expression:
-            Variable Expression: a: a signed int 
-
-            Variable Expression: b: a float 
-
-        to:
-          nothing
-(types:
-)
-        Environment: 
-
-
-Error: Ambiguous expression in sizeof operand: Name: b
-
Index: c/Tests/ResolvExpr/Expected/OccursError.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/OccursError.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,6 +1,0 @@
-Error: No reasonable alternatives for expression Applying untyped: 
-    Name: f
-
-...to: 
-    Name: g
-
Index: c/Tests/ResolvExpr/Expected/Operators.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Operators.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,224 +1,0 @@
-?*?: a function
-    with parameters
-      signed int 
-      signed int 
-    returning 
-      signed int 
-
-?(): a function
-    with parameters
-      number1: a signed int 
-      number2: a signed int 
-    returning 
-      signed int 
-    with body 
-      
-        Return Statement, returning: Cast of:
-  Application of
-    Variable Expression: ?*?: a function
-        with parameters
-          signed int 
-          signed int 
-        returning 
-          signed int 
-
-  to arguments
-          Variable Expression: number1: a signed int 
-
-          Variable Expression: number2: a signed int 
-
-
-to:
-  signed int 
-with environment:
-  Types:
-  Non-types:
-
-
-
-?+?: a function
-    with parameters
-      signed int 
-      signed int 
-    returning 
-      signed int 
-
-?=?: a function
-    with parameters
-      pointer to signed int 
-      signed int 
-    returning 
-      signed int 
-
-struct accumulator
-    with members
-      total: a signed int 
-
-?=?: a automatically generated inline static function
-    with parameters
-      _dst: a pointer to instance of struct accumulator 
-      _src: a instance of struct accumulator 
-    returning 
-      instance of struct accumulator 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?=?: a function
-                with parameters
-                  pointer to signed int 
-                  signed int 
-                returning 
-                  signed int 
-
-          to arguments
-                          Address of:
-                Member Expression, with field: 
-                  total: a signed int 
-                from aggregate: 
-                  Applying untyped: 
-                      Name: *?
-
-                  ...to: 
-                      Variable Expression: _dst: a pointer to instance of struct accumulator 
-
-                          Member Expression, with field: 
-                total: a signed int 
-              from aggregate: 
-                Variable Expression: _src: a instance of struct accumulator 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Return Statement, returning: Cast of:
-  Variable Expression: _src: a instance of struct accumulator 
-
-to:
-  instance of struct accumulator 
-with environment:
-  Types:
-  Non-types:
-
-
-
-?(): a function
-    with parameters
-      a: a instance of struct accumulator 
-      number1: a char 
-      number2: a char 
-    returning 
-      char 
-
-f: a function
-    returning 
-      nothing 
-    with body 
-      Declaration of a: a char 
-      Declaration of b: a char 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?(): a function
-                with parameters
-                  number1: a signed int 
-                  number2: a signed int 
-                returning 
-                  signed int 
-
-          to arguments
-                          Cast of:
-                Variable Expression: a: a char 
-
-              to:
-                signed int 
-
-                          Cast of:
-                Variable Expression: b: a char 
-
-              to:
-                signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?(): a function
-                with parameters
-                  number1: a signed int 
-                  number2: a signed int 
-                returning 
-                  signed int 
-
-          to arguments
-                          Cast of:
-                Variable Expression: a: a char 
-
-              to:
-                signed int 
-
-                          Cast of:
-                Variable Expression: b: a char 
-
-              to:
-                signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?+?: a function
-                with parameters
-                  signed int 
-                  signed int 
-                returning 
-                  signed int 
-
-          to arguments
-                          Cast of:
-                Variable Expression: a: a char 
-
-              to:
-                signed int 
-
-                          Cast of:
-                Variable Expression: b: a char 
-
-              to:
-                signed int 
-
-          with environment:
-            Types:
-            Non-types:
-
-      Declaration of ?+?: a instance of struct accumulator 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: ?(): a function
-                with parameters
-                  a: a instance of struct accumulator 
-                  number1: a char 
-                  number2: a char 
-                returning 
-                  char 
-
-          to arguments
-                          Variable Expression: ?+?: a instance of struct accumulator 
-
-                          Variable Expression: a: a char 
-
-                          Variable Expression: b: a char 
-
-          with environment:
-            Types:
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/Quad.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Quad.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,201 +1,0 @@
-?=?: a function
-    with parameters
-      pointer to signed int 
-      signed int 
-    returning 
-      signed int 
-
-?*?: a function
-    with parameters
-      signed int 
-      signed int 
-    returning 
-      signed int 
-
-square: a forall
-      T: a type
-        with assertions
-          ?=?: a pointer to function
-              with parameters
-                pointer to instance of type T 
-                instance of type T 
-              returning 
-                instance of type T 
-
-          ?*?: a pointer to function
-              with parameters
-                instance of type T 
-                instance of type T 
-              returning 
-                instance of type T 
-
-
-    function
-    with parameters
-      t: a instance of type T 
-    returning 
-      instance of type T 
-    with body 
-      
-        Return Statement, returning: Cast of:
-  Application of
-    Variable Expression: ?*?: a pointer to function
-        with parameters
-          instance of type T 
-          instance of type T 
-        returning 
-          instance of type T 
-
-  to arguments
-          Variable Expression: t: a instance of type T 
-
-          Variable Expression: t: a instance of type T 
-
-
-to:
-  instance of type T 
-with environment:
-  Types:
-  Non-types:
-
-
-
-quad: a forall
-      U: a type
-        with assertions
-          ?=?: a pointer to function
-              with parameters
-                pointer to instance of type U 
-                instance of type U 
-              returning 
-                instance of type U 
-
-          square: a pointer to function
-              with parameters
-                instance of type U 
-              returning 
-                instance of type U 
-
-
-    function
-    with parameters
-      u: a instance of type U 
-    returning 
-      instance of type U 
-    with body 
-      
-        Return Statement, returning: Cast of:
-  Application of
-    Variable Expression: square: a pointer to function
-        with parameters
-          instance of type U 
-        returning 
-          instance of type U 
-
-  to arguments
-          Application of
-        Variable Expression: square: a pointer to function
-            with parameters
-              instance of type U 
-            returning 
-              instance of type U 
-
-      to arguments
-                  Variable Expression: u: a instance of type U 
-
-
-
-to:
-  instance of type U 
-with environment:
-  Types:
-  Non-types:
-
-
-
-f: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: quad: a forall
-                  U: a type
-                    with assertions
-                      ?=?: a pointer to function
-                          with parameters
-                            pointer to instance of type U 
-                            instance of type U 
-                          returning 
-                            instance of type U 
-
-                      square: a pointer to function
-                          with parameters
-                            instance of type U 
-                          returning 
-                            instance of type U 
-
-
-                function
-                with parameters
-                  u: a instance of type U 
-                returning 
-                  instance of type U 
-
-          to arguments
-                          Constant Expression: 7 (type: signed int )
-          with inferred parameters:
-            ?=?: a function
-              with parameters
-                pointer to signed int 
-                signed int 
-              returning 
-                signed int 
-
-            ?*?: a function
-              with parameters
-                signed int 
-                signed int 
-              returning 
-                signed int 
-
-            ?=?: a function
-              with parameters
-                pointer to signed int 
-                signed int 
-              returning 
-                signed int 
-
-            square: a forall
-                T: a type
-                  with assertions
-                    ?=?: a pointer to function
-                        with parameters
-                          pointer to instance of type T 
-                          instance of type T 
-                        returning 
-                          instance of type T 
-
-                    ?*?: a pointer to function
-                        with parameters
-                          instance of type T 
-                          instance of type T 
-                        returning 
-                          instance of type T 
-
-
-              function
-              with parameters
-                t: a instance of type T 
-              returning 
-                instance of type T 
-
-          with environment:
-            Types:
-              _0_U -> signed int 
-              _1_T -> signed int 
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/Rank2.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Rank2.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,272 +1,0 @@
-?=?: a function
-    with parameters
-      pointer to signed int 
-      signed int 
-    returning 
-      signed int 
-
-?=?: a forall
-      DT: a incomplete type
-    function
-    with parameters
-      pointer to pointer to instance of type DT 
-      pointer to instance of type DT 
-    returning 
-      pointer to instance of type DT 
-
-a: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of f: a forall
-            T: a type
-              with assertions
-                ?=?: a pointer to function
-                    with parameters
-                      pointer to instance of type T 
-                      instance of type T 
-                    returning 
-                      instance of type T 
-
-
-          function
-          with parameters
-            instance of type T 
-          returning 
-            nothing 
-
-      Declaration of g: a function
-          with parameters
-            p: a pointer to forall
-                  U: a type
-                    with assertions
-                      ?=?: a pointer to function
-                          with parameters
-                            pointer to instance of type U 
-                            instance of type U 
-                          returning 
-                            instance of type U 
-
-
-                function
-                with parameters
-                  instance of type U 
-                returning 
-                  nothing 
-
-          returning 
-            nothing 
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: g: a function
-                with parameters
-                  p: a pointer to forall
-                        U: a type
-                          with assertions
-                            ?=?: a pointer to function
-                                with parameters
-                                  pointer to instance of type U 
-                                  instance of type U 
-                                returning 
-                                  instance of type U 
-
-
-                      function
-                      with parameters
-                        instance of type U 
-                      returning 
-                        nothing 
-
-                returning 
-                  nothing 
-
-          to arguments
-                          Variable Expression: f: a forall
-                    T: a type
-                      with assertions
-                        ?=?: a pointer to function
-                            with parameters
-                              pointer to instance of type T 
-                              instance of type T 
-                            returning 
-                              instance of type T 
-
-
-                  function
-                  with parameters
-                    instance of type T 
-                  returning 
-                    nothing 
-
-
-          with inferred parameters:
-            ?=?: a pointer to function
-              with parameters
-                pointer to instance of type U 
-                instance of type U 
-              returning 
-                instance of type U 
-
-          with environment:
-            Types:
-              _1_T -> instance of type _0_U 
-            Non-types:
-
-
-g: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of h: a function
-          with parameters
-            null: a pointer to signed int 
-          returning 
-            nothing 
-
-      Declaration of id: a forall
-            T: a type
-              with assertions
-                ?=?: a pointer to function
-                    with parameters
-                      pointer to instance of type T 
-                      instance of type T 
-                    returning 
-                      instance of type T 
-
-
-          function
-          with parameters
-            instance of type T 
-          returning 
-            instance of type T 
-
-      Declaration of 0: a forall
-            T: a incomplete type
-          pointer to instance of type T 
-      Declaration of 0: a signed int 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: h: a function
-                with parameters
-                  null: a pointer to signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Application of
-                Variable Expression: id: a forall
-                      T: a type
-                        with assertions
-                          ?=?: a pointer to function
-                              with parameters
-                                pointer to instance of type T 
-                                instance of type T 
-                              returning 
-                                instance of type T 
-
-
-                    function
-                    with parameters
-                      instance of type T 
-                    returning 
-                      instance of type T 
-
-              to arguments
-                                  Application of
-                    Variable Expression: id: a forall
-                          T: a type
-                            with assertions
-                              ?=?: a pointer to function
-                                  with parameters
-                                    pointer to instance of type T 
-                                    instance of type T 
-                                  returning 
-                                    instance of type T 
-
-
-                        function
-                        with parameters
-                          instance of type T 
-                        returning 
-                          instance of type T 
-
-                  to arguments
-                                          Application of
-                        Variable Expression: id: a forall
-                              T: a type
-                                with assertions
-                                  ?=?: a pointer to function
-                                      with parameters
-                                        pointer to instance of type T 
-                                        instance of type T 
-                                      returning 
-                                        instance of type T 
-
-
-                            function
-                            with parameters
-                              instance of type T 
-                            returning 
-                              instance of type T 
-
-                      to arguments
-                                                  Variable Expression: 0: a forall
-                                T: a incomplete type
-                              pointer to instance of type T 
-
-                      with inferred parameters:
-                        ?=?: a forall
-                            DT: a incomplete type
-                          function
-                          with parameters
-                            pointer to pointer to instance of type DT 
-                            pointer to instance of type DT 
-                          returning 
-                            pointer to instance of type DT 
-
-
-                  with inferred parameters:
-                    ?=?: a forall
-                        DT: a incomplete type
-                      function
-                      with parameters
-                        pointer to pointer to instance of type DT 
-                        pointer to instance of type DT 
-                      returning 
-                        pointer to instance of type DT 
-
-
-              with inferred parameters:
-                ?=?: a forall
-                    DT: a incomplete type
-                  function
-                  with parameters
-                    pointer to pointer to instance of type DT 
-                    pointer to instance of type DT 
-                  returning 
-                    pointer to instance of type DT 
-
-
-          with environment:
-            Types:
-              _0_T -> forall
-                    _3_T: a incomplete type
-                  pointer to instance of type _3_T 
-              _1_T -> forall
-                    _3_T: a incomplete type
-                  pointer to instance of type _3_T 
-              _2_T -> forall
-                    _3_T: a incomplete type
-                  pointer to instance of type _3_T 
-              _3_T -> signed int 
-              _5_DT -> signed int 
-              _7_DT -> signed int 
-              _9_DT -> signed int 
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/ShortCircuit.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/ShortCircuit.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,178 +1,0 @@
-?!=?: a function
-    with parameters
-      signed int 
-      signed int 
-    returning 
-      signed int 
-
-?!=?: a function
-    with parameters
-      float 
-      float 
-    returning 
-      signed int 
-
-0: a signed int 
-g: a function
-    with parameters
-      float 
-    returning 
-      nothing 
-
-g: a function
-    with parameters
-      signed int 
-    returning 
-      nothing 
-
-f: a function
-    with parameters
-      a: a signed int 
-    returning 
-      nothing 
-    with body 
-      Declaration of b: a signed int 
-      Declaration of c: a float 
-      
-        Expression Statement:
-          Application of
-            Variable Expression: g: a function
-                with parameters
-                  float 
-                returning 
-                  nothing 
-
-          to arguments
-                          Conditional expression on: 
-                Cast of:
-                  Application of
-                    Variable Expression: ?!=?: a function
-                        with parameters
-                          signed int 
-                          signed int 
-                        returning 
-                          signed int 
-
-                  to arguments
-                                          Variable Expression: a: a signed int 
-
-                                          Variable Expression: 0: a signed int 
-
-
-                to:
-                  signed int 
-              First alternative:
-                Variable Expression: b: a signed int 
-              Second alternative:
-                Variable Expression: c: a float 
-
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: g: a function
-                with parameters
-                  signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Short-circuited operation (and) on: Cast of:
-  Application of
-    Variable Expression: ?!=?: a function
-        with parameters
-          signed int 
-          signed int 
-        returning 
-          signed int 
-
-  to arguments
-          Variable Expression: a: a signed int 
-
-          Variable Expression: 0: a signed int 
-
-
-to:
-  signed int 
- and Cast of:
-  Application of
-    Variable Expression: ?!=?: a function
-        with parameters
-          float 
-          float 
-        returning 
-          signed int 
-
-  to arguments
-          Variable Expression: c: a float 
-
-          Cast of:
-        Variable Expression: 0: a signed int 
-
-      to:
-        float 
-
-
-to:
-  signed int 
-
-
-          with environment:
-            Types:
-            Non-types:
-
-      
-        Expression Statement:
-          Application of
-            Variable Expression: g: a function
-                with parameters
-                  signed int 
-                returning 
-                  nothing 
-
-          to arguments
-                          Short-circuited operation (or) on: Cast of:
-  Application of
-    Variable Expression: ?!=?: a function
-        with parameters
-          signed int 
-          signed int 
-        returning 
-          signed int 
-
-  to arguments
-          Variable Expression: a: a signed int 
-
-          Variable Expression: 0: a signed int 
-
-
-to:
-  signed int 
- and Cast of:
-  Application of
-    Variable Expression: ?!=?: a function
-        with parameters
-          signed int 
-          signed int 
-        returning 
-          signed int 
-
-  to arguments
-          Variable Expression: b: a signed int 
-
-          Variable Expression: 0: a signed int 
-
-
-to:
-  signed int 
-
-
-          with environment:
-            Types:
-            Non-types:
-
-
Index: c/Tests/ResolvExpr/Expected/Statement.tst
===================================================================
--- src/Tests/ResolvExpr/Expected/Statement.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,170 +1,0 @@
-?=?: a function
-    with parameters
-      pointer to signed int 
-      signed int 
-    returning 
-      signed int 
-
-?!=?: a function
-    with parameters
-      signed int 
-      signed int 
-    returning 
-      signed int 
-
-0: a signed int 
-f: a function
-      accepting unspecified arguments
-    returning 
-      nothing 
-    with body 
-      Declaration of a: a signed int 
-      Declaration of struct __anonymous0
-          with members
-            b: a signed int 
-
-      Declaration of ?=?: a automatically generated inline static function
-          with parameters
-            _dst: a pointer to instance of struct __anonymous0 
-            _src: a instance of struct __anonymous0 
-          returning 
-            instance of struct __anonymous0 
-          with body 
-            
-              Expression Statement:
-                Application of
-                  Variable Expression: ?=?: a function
-                      with parameters
-                        pointer to signed int 
-                        signed int 
-                      returning 
-                        signed int 
-
-                to arguments
-                                      Address of:
-                      Member Expression, with field: 
-                        b: a signed int 
-                      from aggregate: 
-                        Applying untyped: 
-                            Name: *?
-
-                        ...to: 
-                            Variable Expression: _dst: a pointer to instance of struct __anonymous0 
-
-                                      Member Expression, with field: 
-                      b: a signed int 
-                    from aggregate: 
-                      Variable Expression: _src: a instance of struct __anonymous0 
-
-                with environment:
-                  Types:
-                  Non-types:
-
-            
-              Return Statement, returning: Cast of:
-  Variable Expression: _src: a instance of struct __anonymous0 
-
-to:
-  instance of struct __anonymous0 
-with environment:
-  Types:
-  Non-types:
-
-
-
-      Declaration of a: a instance of struct __anonymous0 
-      
-        If on condition: 
-            Cast of:
-              Application of
-                Variable Expression: ?!=?: a function
-                    with parameters
-                      signed int 
-                      signed int 
-                    returning 
-                      signed int 
-
-              to arguments
-                                  Variable Expression: a: a signed int 
-
-                                  Variable Expression: 0: a signed int 
-
-
-            to:
-              signed int 
-            with environment:
-              Types:
-              Non-types:
-        .... and branches: 
-            
-              While on condition: 
-                  Cast of:
-                    Application of
-                      Variable Expression: ?!=?: a function
-                          with parameters
-                            signed int 
-                            signed int 
-                          returning 
-                            signed int 
-
-                    to arguments
-                                              Variable Expression: a: a signed int 
-
-                                              Variable Expression: 0: a signed int 
-
-
-                  to:
-                    signed int 
-                  with environment:
-                    Types:
-                    Non-types:
-              .... with body: 
-                  Declaration of b: a pointer to signed int 
-                  
-                    For Statement
-
-                      initialization: 
-
-                        Expression Statement:
-                          Variable Expression: b: a pointer to signed int 
-                          with environment:
-                            Types:
-                            Non-types:
-
-
-                      condition: 
-                        Cast of:
-                          Application of
-                            Variable Expression: ?!=?: a function
-                                with parameters
-                                  signed int 
-                                  signed int 
-                                returning 
-                                  signed int 
-
-                          to arguments
-                                                          Variable Expression: a: a signed int 
-
-                                                          Variable Expression: 0: a signed int 
-
-
-                        to:
-                          signed int 
-                        with environment:
-                          Types:
-                          Non-types:
-
-
-                      increment: 
-                        Variable Expression: b: a pointer to signed int 
-                        with environment:
-                          Types:
-                          Non-types:
-
-
-                      statement block: 
-
-
-
-
-
Index: c/Tests/ResolvExpr/Function.c
===================================================================
--- src/Tests/ResolvExpr/Function.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,32 +1,0 @@
-int a;
-float a;
-int f( int );
-float f( float );
-
-void g() {
-	// selects the same f each time but without a cast would be ambiguous
-	f( (int)a );
-	(int)f( a );
-}
-
-[ int ] p;
-[ int, double ] p;
-[ int, int, int ] p;
-[ int, int, int, int ] p;
-
-[ char ] q;
-[ int, int ] q;
-[ int, int, float ] q;
-[ int, int, int, int ] q;
-
-[ int, int ] r( int, int, int, int );
-
-void s() {
-	r( p, q );
-	r( [ q, p ] );
-	r( r( p, q ), r( q, q ) );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/InferParam.c
===================================================================
--- src/Tests/ResolvExpr/InferParam.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,30 +1,0 @@
-int ?=?( int*, int );
-float ?=?( float*, float );
-double ?=?( double*, double );
-
-forall( type T, type U | { U f(T); } ) U g(T);
-float f( int );
-double f( int );
-void i( float );
-
-void h() {
-	int a;
-	i( g( a ) );
-}
-
-context has_f_and_j( type T, type U ) {
-	U f( T );
-	U j( T, U );
-};
-
-float j( int, float );
-forall( type T, type U | has_f_and_j( T, U ) ) U k( T );
-
-void l() {
-	int b;
-	i( k( b ) );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/Makefile
===================================================================
--- src/Tests/ResolvExpr/Makefile	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,2 +1,0 @@
-all:
-	sh run-tests.sh
Index: c/Tests/ResolvExpr/Members.c
===================================================================
--- src/Tests/ResolvExpr/Members.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,72 +1,0 @@
-char ?=?( char*, char );
-int ?=?( int*, int );
-float ?=?( float*, float );
-forall( dtype DT ) DT * ?=?( DT**, DT* );
-forall(type T) lvalue T *?( T* );
-char *__builtin_memcpy();
-
-void a( char );
-void b( int );
-void c( int* );
-void d( float* );
-
-struct a_struct {
-	int a;
-	char a;
-	float a;
-};
-
-union b_struct {
-	int *a;
-	char *a;
-	float *a;
-};
-
-void f() {
-	struct a_struct the_struct;
-	union b_struct the_struct;
-  
-	a( the_struct.a );
-	b( the_struct.a );
-	c( the_struct.a );
-	d( the_struct.a );
-}
-
-struct c_struct {
-	int;
-	char;
-	float;
-};
-
-union d_struct {
-	int*;
-	char*;
-	float*;
-};
-
-void g() {
-	unsigned short x;
-	struct c_struct x;
-	union d_struct x;
-  
-	a( x );	// the 'a' and 'b' calls resolve to the ushort
-	b( x );	// it's debatable whether this is good
-	c( x );
-	d( x );
-}
-
-// make sure that forward declarations work
-
-struct forward;
-
-struct forward *q;
-
-struct forward { int y; };
-
-void h() {
-	q->y;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/Misc.c
===================================================================
--- src/Tests/ResolvExpr/Misc.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,17 +1,0 @@
-int a;
-int b;
-float b;
-
-void g( int );
-void g( unsigned );
-
-void f( void ) {
-	g( (a, b) );
-	g( (a, a, b) );
-	g( sizeof a );
-	g( sizeof( int ) );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/MiscError.c
===================================================================
--- src/Tests/ResolvExpr/MiscError.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,16 +1,0 @@
-int a;
-int b;
-float b;
-
-void g( int );
-
-void f( void ) {
-	g( (b, a) );
-	g( (b, a, b) );
-	g( (a, b, b) );
-	sizeof b;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/OccursError.c
===================================================================
--- src/Tests/ResolvExpr/OccursError.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,10 +1,0 @@
-forall( type T ) void f( void (*)( T, T* ) );
-forall( type U ) void g( U*, U );
-
-void test() {
-    f( g );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/Operators.c
===================================================================
--- src/Tests/ResolvExpr/Operators.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,27 +1,0 @@
-int ?*?( int, int );
-
-int ?()( int number1, int number2 ) {
-	return number1 * number2;
-}
-
-int ?+?( int, int );
-
-int ?=?( int *, int );
-struct accumulator {
-	int total;
-};
-
-char ?()( struct accumulator a, char number1, char number2 );
-
-void f( void ) {
-	char a, b;
-	?()( a, b );
-	a(b);
-	a + b;
-	struct accumulator ?+?;	// why not, eh?
-	a + b;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/Quad.c
===================================================================
--- src/Tests/ResolvExpr/Quad.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,20 +1,0 @@
-int ?=?( int *, int );
-int ?*?( int, int );
-
-forall( type T | { T ?*?( T, T ); } )
-T square( T t ) {
-	return t * t;
-}
-
-forall( type U | { U square( U ); } )
-U quad( U u ) {
-	return square( square( u ) );
-}
-
-void f() {
-	quad( 7 );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/Rank2.c
===================================================================
--- src/Tests/ResolvExpr/Rank2.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,20 +1,0 @@
-int ?=?( int *, int );
-forall(dtype DT) DT * ?=?( DT **, DT * );
-
-void a() {
-	forall( type T ) void f( T );
-	void g( forall( type U ) void p( U ) );
-	g( f );
-}
-
-void g() {
-	void h( int *null );
-	forall( type T ) T id( T );
-	forall( dtype T ) T *0;
-	int 0;
-	h( id( id( id( 0 ) ) ) );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/ShortCircuit.c
===================================================================
--- src/Tests/ResolvExpr/ShortCircuit.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,18 +1,0 @@
-int ?!=?( int, int );
-int ?!=?( float, float );
-int 0;
-
-void g( float );
-void g( int );
-
-void f( int a ) {
-	int b;
-	float c;
-	g( a ? b : c );
-	g( a && c );
-	g( a || b );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/Statement.c
===================================================================
--- src/Tests/ResolvExpr/Statement.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,19 +1,0 @@
-int ?=?( int *, int );
-int ?!=?( int, int );
-int 0;
-
-void f() {
-    int a;
-    struct { int b; } a;
-    if ( a ) {
-		while ( a ) {
-			int *b;
-			for ( b; a; b ) {
-			}
-		}
-    }
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/ResolvExpr/make-rules
===================================================================
--- src/Tests/ResolvExpr/make-rules	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,20 +1,0 @@
-CFA = ../../cfa-cpp
-
-EXPECTED := ${wildcard ${EXPECTDIR}/*.tst}
-TESTS := ${EXPECTED:${EXPECTDIR}/%=${OUTPUTDIR}/%}
-TEST_IN := ${TESTS:.tst=.c}
-
-.SILENT :
-
-${OUTPUTDIR}/%.tst : %.c ${CFA}
-	-${CFA} ${CFAOPT} < $< > $@ 2>&1
-
-${OUTPUTDIR}/report : ${TESTS} ${EXPECTED}
-	rm -f $@
-	@for i in ${TESTS}; do \
-	     echo "---"`basename $$i`"---" | tee -a $@; \
-	     diff -B -w ${EXPECTDIR}/`basename $$i` $$i | tee -a $@; \
-	done
-
-clean :
-	rm -rf ${OUTPUTDIR}
Index: c/Tests/ResolvExpr/run-tests.sh
===================================================================
--- src/Tests/ResolvExpr/run-tests.sh	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,8 +1,0 @@
-#!/bin/sh -v
-
-dotest() {
-  mkdir -p Output$1
-  OUTPUTDIR=Output$1 EXPECTDIR=Expected$1 CFAOPT=$2 gmake -f make-rules $3
-}
-
-dotest "" -ne "$*"
Index: src/Tests/Scope.c
===================================================================
--- src/Tests/Scope.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Scope.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,66 @@
+int x;
+typedef double y;
+typedef float t;
+y z;
+type u = struct { int a; double b; };
+int f( int y );
+y q;
+
+y w( y y, u v ) {
+	type x | { x t(u); };
+	u u = y;
+	x z = t(u);
+}
+
+y p;
+
+context has_u( type z ) {
+	z u(z);
+};
+
+forall( type t | has_u( t ) )
+y q( t the_t ) {
+	t y = u( the_t );
+}
+
+t f( y p ) {
+	int y;
+	typedef char x;
+	{
+		x y;
+		typedef x z;
+		{
+			z x;
+			typedef z y;
+			y z = x;
+		}
+		z x = y;
+	}
+	x q = y;
+}
+
+t g( void ) {
+	typedef char x;
+	try {
+		some_func();
+	} catch ( x x ) {
+		t y = x;
+	}
+	x z;
+}
+
+y q( i )												/* K&R style */
+	int i;
+{
+	switch ( i ) {
+		y q = i;
+	  case 0:
+		return q;
+	  default:
+		return i;
+	}
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/ScopeErrors.c
===================================================================
--- src/Tests/ScopeErrors.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/ScopeErrors.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,25 @@
+int thisIsAnError;
+int thisIsAnError;
+
+int thisIsNotAnError;
+float thisIsNotAnError;
+
+int thisIsAlsoNotAnError() {
+  int thisIsNotAnError;
+}
+
+int thisIsAlsoNotAnError( double x ) {
+}
+
+double thisIsStillNotAnError( double );
+double thisIsStillNotAnError( double );
+
+double butThisIsAnError( double ) {
+}
+
+double butThisIsAnError( double ) {
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/ShortCircuit.c
===================================================================
--- src/Tests/ShortCircuit.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/ShortCircuit.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,18 @@
+int ?!=?( int, int );
+int ?!=?( float, float );
+int 0;
+
+void g( float );
+void g( int );
+
+void f( int a ) {
+	int b;
+	float c;
+	g( a ? b : c );
+	g( a && c );
+	g( a || b );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Statement.c
===================================================================
--- src/Tests/Statement.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Statement.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,19 @@
+int ?=?( int *, int );
+int ?!=?( int, int );
+int 0;
+
+void f() {
+    int a;
+    struct { int b; } a;
+    if ( a ) {
+		while ( a ) {
+			int *b;
+			for ( b; a; b ) {
+			}
+		}
+    }
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/StructMember.c
===================================================================
--- src/Tests/StructMember.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/StructMember.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,44 @@
+typedef int T;
+
+struct S {
+	int m1:3, m2:4;
+	int :2;
+	int :3, :4;
+	int m3;
+	int m4, m5, m6;
+	int *m7, *m8, *m9;
+	int (*m10)();
+	int *(*m11)(int);
+	T T;
+	T (T);
+
+// Cforall extensions
+
+	* int m12, m13;
+	* [ * int ] (int) m14;
+	int ;
+	int , , ;
+	int * , , ;
+	int *, *, *;
+	* int , , ;
+	int (*)();
+	int (**)( int );
+	T ;
+
+// errors
+
+//    void f(void);
+};
+
+struct S s;
+
+union U {
+	[5] int m1;
+	int m2[5];
+	* int m3;
+	int *m4;
+} u;
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Subrange.c
===================================================================
--- src/Tests/Subrange.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Subrange.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,63 @@
+// A small context defining the notion of an ordered type.  (The standard
+// library should probably contain a context for this purpose.)
+context ordered(type T) {
+    int ?<?(T, T), ?<=?(T, T);
+};
+
+// A subrange type resembling an Ada subtype with a base type and a range
+// constraint.
+type subrange(type base_t | ordered(base_t), base_t low = 0, base_t high = 8) = base_t;
+
+// Note that subrange() can be applied to floating-point and pointer types, not
+// just integral types.
+//   This requires a "type generator" extension to Cforall.  Type generators
+// must accept type and non-type parameters, which is beyond what we discussed
+// previously.  Type parameters must be usable in the declaration of
+// subsequent parameters: parameter T is used to declare parameters "low"
+// and "high".
+
+// Example usage:
+subrange(unsigned, 1, 31) day_of_month;
+subrange(char, 'a', 'z')  lcase;
+subrange(int, 0, (rand() & 0xF) ) foo;
+
+// What sorts of expressions can be used as arguments of type generators?  Is
+// "subrange(int, 0, rand() & 0xF)" legal?  Probably.  The nearest C equivalent
+// to the "low" and "high" arguments is the array size in a variable-length
+// array declaration, and C allows assignment expressions there.
+
+// Convenient access to subrange bounds, for instance for iteration:
+forall (type T, T low, T high)
+T lbound( subrange(T, low, high) v) {
+    return low;
+}
+
+forall (type T, T low, T high)
+T hbound( subrange(T, low, high) v) {
+    return high;
+}
+
+// Example usage:
+unsigned lday = lbound(day_of_month);
+
+// Assignment from the base type, with bounds checking.  I'll ignore the issue
+// of exception handling here.  Inlining allows the compiler to eliminate
+// bounds checks.
+forall (type T | ordered(T), T low, T high)
+inline subrange(T, low, high) ?=?(subrange(T, low, high)* target, T source) {
+    if (low <= source && source <= high) *((T*)target) = source;
+    else abort();
+    return target;
+}
+
+// Assignment between subranges with a common base type.  The bounds check
+// compares range bounds so that the compiler can optimize checks away when the
+// ranges are known to overlap.
+forall (type T | ordered(T), T t_low, T t_high, T s_low, T s_high)
+inline subrange(T, t_low, t_high) ?=?(subrange(T, t_low, t_high)* target,
+				      subrange(T, s_low, s_high) source) {
+    if ( (t_low <= s_low || t_low <= source)
+	 && (s_high <= t_high || source <= t_high) ) *((T*)target) = source;
+    else abort();
+    return target;
+}
Index: src/Tests/Switch.c
===================================================================
--- src/Tests/Switch.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Switch.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,42 @@
+int fred() {
+    int i;
+    switch ( i ) case 3 : i = 1;
+    switch ( i ) default : i = 1;
+    switch ( 3 )
+      default:
+      case 2:
+      case 3:
+	3;
+
+    switch ( i ) {
+    }
+
+    switch ( i ) {
+	int i;
+      case 8~10:
+      default:
+	i = 3;
+      case 3:
+      case 'A' ... 'Z':
+      case 5 ... 6:
+      case 2, 4:
+	i = 3;
+	break;
+    }
+
+    choose ( i ) case 3 : i = 1;
+    choose ( i ) default : i = 1;
+    choose ( i ) {
+	int i;
+      case 3:
+      case 'A' ... 'Z':
+      case 5 ... 6:
+      case 2, 4, 7:
+	i = 3;
+	fallthru;
+      default:
+	i = 3;
+      case 8~10:
+	fallthru
+    }
+}
Index: c/Tests/SynTree/Array.c
===================================================================
--- src/Tests/SynTree/Array.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,37 +1,0 @@
-int a1[];
-int a2[*];
-double a4[3.0];
-
-int m1[][3];
-int m2[*][*];
-int m4[3][3];
-
-typedef int T;
-
-int fred() {
-	int a1[];
-	int a2[*];
-	int a4[3];
-	int T[3];
-}
-
-int mary( int T[3],
-		  int p1[const 3],
-		  int p2[static 3],
-		  int p3[static const 3]
-	) {
-}
-
-int (*tom())[3] {
-}
-
-int (*(jane)())( int T[3],
-				 int p1[const 3],
-				 int p2[static 3],
-				 int p3[static const 3]
-	) {
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/Constant0-1.c
===================================================================
--- src/Tests/SynTree/Constant0-1.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,46 +1,0 @@
-// Cforall extension
-
-// value
-
-int 0;
-const int 0;
-static const int 0;
-int 1;
-const int 1;
-static const int 1;
-int 0, 1;
-const int 0, 1;
-int (0), (1);
-int ((0)), ((1));
-static const int 0, 1;
-struct { int i; } 0;
-const struct { int i; } 1;
-static const struct { int i; } 1;
-
-// pointer
-
-int *0, *1;
-int *(0), *(1);
-int (*0), (*1);
-int ((*0)), ((*1));
-int * const (0), * const 1;
-int (* const 0), (* const 1);
-int ((* const 0)), ((* const 1));
-struct { int i; } *0;
-
-// Cforall style
-
-* int x, 0;
-const * int x, 0;
-static const * int x, 0;
-* struct { int i; } 0;
-const * struct { int i; } 0;
-static const * struct { int i; } 0;
-static * int x, 0;
-static const * int x, 0;
-const * * int x, 0;
-
-int main() {
-    int 1, * 0;
-    * int x, 0;
-}
Index: c/Tests/SynTree/Context.c
===================================================================
--- src/Tests/SynTree/Context.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,15 +1,0 @@
-context has_q( type T ) {
-	T q( T );
-};
-
-forall( type z | has_q( z ) ) void f() {
-	context has_r( type T, type U ) {
-		T r( T, T (T,U) );
-	};
-  
-	extern type x, y | has_r( x, y );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/DeclarationErrors.c
===================================================================
--- src/Tests/SynTree/DeclarationErrors.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,9 +1,0 @@
-static short int volatile static const x9;		// duplicate static
-struct { int i; } const static volatile static x18;	// duplicate static
-struct { int i; } const static volatile static volatile x19; // duplicate static & volatile
-typedef int Int;
-static Int volatile static const x28;			// duplicate static
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/DeclarationSpecifier.c
===================================================================
--- src/Tests/SynTree/DeclarationSpecifier.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,93 +1,0 @@
-typedef short int Int;
-
-
-const short int volatile x1;
-static const short int volatile x2;
-const static short int volatile x3;
-const short static int volatile x4;
-const static volatile short int x4;
-const short int static volatile x5;
-const short int volatile static x6;
-const short volatile int static x7;
-short int volatile static const x8;
-static short int volatile static const x9;		// duplicate static
-
-const volatile struct { int i; } x10;
-const struct { int i; } volatile x11;
-struct { int i; } const volatile x12;
-static const volatile struct { int i; } x13;
-const static struct { int i; } volatile x14;
-struct { int i; } static const volatile x15;
-struct { int i; } const static volatile x16;
-struct { int i; } const volatile static x17;
-struct { int i; } const static volatile static x18;	// duplicate static
-struct { int i; } const static volatile static volatile x19; // duplicate static & volatile
-
-const Int volatile x20;
-static const Int volatile x21;
-const static Int volatile x22;
-const static Int volatile x23;
-const Int static volatile x24;
-const Int volatile static x25;
-const volatile Int static x26;
-Int volatile static const x27;
-static Int volatile static const x28;			// duplicate static
-
-const volatile struct { Int i; } x29;
-const struct { Int i; } volatile x30;
-struct { Int i; } const volatile x31;
-static const volatile struct { Int i; } x32;
-const static struct { Int i; } volatile x33;
-struct { Int i; } static const volatile x34;
-struct { Int i; } const static volatile x35;
-struct { Int i; } const volatile static x36;
-
-
-const static inline const volatile int f01();		// duplicate const
-volatile inline const volatile static int f02();	// duplicate volatile
-const inline const volatile int static f03();		// duplicate const
-volatile inline static const volatile int f04();	// duplicate volatile
-const static const inline volatile int f05();		// duplicate const
-volatile static const volatile inline int f06();	// duplicate volatile
-const static const volatile int inline f07();		// duplicate const
-volatile static const int inline volatile f08();	// duplicate volatile
-
-static inline const volatile int f11();
-inline const volatile static int f12();
-inline const volatile int static f13();
-inline static const volatile int f14();
-static const inline volatile int f15();
-static const volatile inline int f16();
-static const volatile int inline f17();
-static const int inline volatile f18();
-
-short static inline const volatile int f21();
-inline short const volatile static int f22();
-inline const short volatile int static f23();
-inline static const short volatile int f24();
-static const inline volatile short int f25();
-static const volatile inline int short f26();
-static const volatile int inline short f27();
-static const int inline volatile short f28();
-
-static inline const volatile struct { int i; } f31();
-inline const volatile static struct { int i; } f32();
-inline const volatile struct { int i; } static f33();
-inline static const volatile struct { int i; } f34();
-static const inline volatile struct { int i; } f35();
-static const volatile inline struct { int i; } f36();
-static const volatile struct { int i; } inline f37();
-static const struct { int i; } inline volatile f38();
-
-static inline const volatile Int f41();
-inline const volatile static Int f42();
-inline const volatile Int static f43();
-inline static const volatile Int f44();
-static const inline volatile Int f45();
-static const volatile inline Int f46();
-static const volatile Int inline f47();
-static const Int inline volatile f48();
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/Enum.c
===================================================================
--- src/Tests/SynTree/Enum.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,22 +1,0 @@
-enum Colors {
-	Red,
-	Yellow,
-	Pink,
-	Blue,
-	Purple,
-	Orange,
-	Green
-};
-
-void f( void ) {
-	enum Fruits {
-		Apple,
-		Banana,
-		Pear,
-		Mango
-	} fruit = Mango;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/Expected-SymTab/Array.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Array.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,38 +1,0 @@
-Adding object a1
-Adding object a2
-Adding object a4
-Adding object m1
-Adding object m2
-Adding object m4
-Adding function fred
---- Entering scope
---- Entering scope
-Adding object a1
-Adding object a2
-Adding object a4
-Adding object T
---- Leaving scope containing
---- Leaving scope containing
-Adding function mary
---- Entering scope
-Adding object T
-Adding object p1
-Adding object p2
-Adding object p3
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-Adding function tom
---- Entering scope
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-Adding function jane
---- Entering scope
-Adding object T
-Adding object p1
-Adding object p2
-Adding object p3
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
Index: c/Tests/SynTree/Expected-SymTab/Context.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Context.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,45 +1,0 @@
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type T
-Adding function q
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-T
-Adding context has_q
-Adding function f
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type z
-Adding function ?=?
---- Entering scope
---- Leaving scope containing
---- Entering scope
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type T
---- Entering scope
---- Leaving scope containing
-Adding type U
-Adding function r
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-T
-U
-Adding context has_r
---- Entering scope
---- Leaving scope containing
-Adding type x
---- Entering scope
---- Leaving scope containing
-Adding type y
---- Leaving scope containing
-x
-y
-has_r
---- Leaving scope containing
-z
Index: c/Tests/SynTree/Expected-SymTab/Enum.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Enum.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,20 +1,0 @@
-Adding enum Colors
-Adding object Red
-Adding object Yellow
-Adding object Pink
-Adding object Blue
-Adding object Purple
-Adding object Orange
-Adding object Green
-Adding function f
---- Entering scope
---- Entering scope
-Adding enum Fruits
-Adding object Apple
-Adding object Banana
-Adding object Pear
-Adding object Mango
-Adding object fruit
---- Leaving scope containing
-Fruits
---- Leaving scope containing
Index: c/Tests/SynTree/Expected-SymTab/Forall.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Forall.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,134 +1,0 @@
-Adding function swap
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type T
-Adding function ?=?
---- Entering scope
---- Leaving scope containing
-Adding object left
-Adding object right
---- Entering scope
-Adding object temp
---- Leaving scope containing
---- Leaving scope containing
-T
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type T
-Adding object 0
-Adding function ?+?
---- Entering scope
---- Leaving scope containing
-Adding function ?++
---- Entering scope
---- Leaving scope containing
-Adding function ?+=?
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-T
-Adding context sumable
---- Entering scope
---- Leaving scope containing
-Adding type T1
-Adding object 0
-Adding function ?+?
---- Entering scope
---- Leaving scope containing
-Adding function ?++
---- Entering scope
---- Leaving scope containing
-Adding function ?+=?
---- Entering scope
---- Leaving scope containing
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type P1
---- Entering scope
---- Leaving scope containing
-Adding type P2
---- Leaving scope containing
-P1
-P2
-Adding type T2
---- Entering scope
---- Leaving scope containing
-Adding type T3
-Adding fwd decl for struct __anonymous0
---- Entering scope
-Adding object i
-Adding object j
---- Leaving scope containing
-Adding struct __anonymous0
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type P1
---- Entering scope
---- Leaving scope containing
-Adding type P2
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-P1
-P2
-Adding type T2
-Adding object w1
-Adding object g2
---- Entering scope
---- Leaving scope containing
-Adding type w3
-Adding object g3
-Adding function sum
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type T
-Adding function ?=?
---- Entering scope
---- Leaving scope containing
-Adding object n
-Adding object a
---- Entering scope
-Adding object total
-Adding object i
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
---- Leaving scope containing
-T
-Adding function twice
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type T
-Adding function ?=?
---- Entering scope
---- Leaving scope containing
-Adding object 0
-Adding function ?+?
---- Entering scope
---- Leaving scope containing
-Adding function ?++
---- Entering scope
---- Leaving scope containing
-Adding function ?+=?
---- Entering scope
---- Leaving scope containing
-Adding object t
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-T
-Adding function main
---- Entering scope
---- Entering scope
-Adding object x
-Adding object y
-Adding object a
-Adding object f
---- Leaving scope containing
---- Leaving scope containing
Index: c/Tests/SynTree/Expected-SymTab/Scope.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Scope.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,93 +1,0 @@
-Adding object x
-Adding object z
-Adding fwd decl for struct __anonymous0
---- Entering scope
-Adding object a
-Adding object b
---- Leaving scope containing
-Adding struct __anonymous0
---- Entering scope
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-Adding type u
-Adding function f
---- Entering scope
-Adding object y
---- Leaving scope containing
-Adding object q
-Adding function w
---- Entering scope
-Adding object y
-Adding object v
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type x
-Adding function t
---- Entering scope
---- Leaving scope containing
-Adding object u
-Adding object z
---- Leaving scope containing
-x
---- Leaving scope containing
-Adding object p
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type z
-Adding function u
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-z
-Adding context has_u
-Adding function q
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding type t
-Adding function ?=?
---- Entering scope
---- Leaving scope containing
-Adding object the_t
---- Entering scope
-Adding object y
---- Leaving scope containing
---- Leaving scope containing
-t
-Adding function f
---- Entering scope
-Adding object p
---- Entering scope
-Adding object y
---- Entering scope
-Adding object y
---- Entering scope
-Adding object x
-Adding object z
---- Leaving scope containing
-Adding object x
---- Leaving scope containing
-Adding object q
---- Leaving scope containing
---- Leaving scope containing
-Adding function g
---- Entering scope
---- Entering scope
---- Entering scope
---- Leaving scope containing
-Adding object x
---- Entering scope
-Adding object y
---- Leaving scope containing
-Adding object z
---- Leaving scope containing
---- Leaving scope containing
-Adding function q
---- Entering scope
-Adding object i
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
Index: c/Tests/SynTree/Expected-SymTab/ScopeErrors.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/ScopeErrors.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,36 +1,0 @@
-Adding object thisIsAnError
-Adding object thisIsAnError
-Adding object thisIsNotAnError
-Adding object thisIsNotAnError
-Adding function thisIsAlsoNotAnError
---- Entering scope
---- Entering scope
-Adding object thisIsNotAnError
---- Leaving scope containing
---- Leaving scope containing
-Adding function thisIsAlsoNotAnError
---- Entering scope
-Adding object x
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-Adding function thisIsStillNotAnError
---- Entering scope
---- Leaving scope containing
-Adding function thisIsStillNotAnError
---- Entering scope
---- Leaving scope containing
-Adding function butThisIsAnError
---- Entering scope
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-Adding function butThisIsAnError
-Error: duplicate function definition for butThisIsAnError: function
-  with parameters
-    double 
-  returning 
-    double 
-  with body 
-    CompoundStmt
-
Index: c/Tests/SynTree/Expected-SymTab/Tuple.tst
===================================================================
--- src/Tests/SynTree/Expected-SymTab/Tuple.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,79 +1,0 @@
-Adding function f
---- Entering scope
---- Leaving scope containing
-Adding function g
---- Entering scope
---- Leaving scope containing
-Adding function h
---- Entering scope
-Adding object a
-Adding object b
-Adding object c
-Adding object d
---- Leaving scope containing
-Adding fwd decl for struct inner
---- Entering scope
-Adding object f2
-Adding object f3
---- Leaving scope containing
-Adding struct inner
-Adding fwd decl for struct outer
---- Entering scope
-Adding object f1
---- Entering scope
---- Leaving scope containing
-Adding object i
-Adding object f4
---- Leaving scope containing
-Adding struct outer
---- Entering scope
---- Leaving scope containing
-Adding object s
---- Entering scope
---- Leaving scope containing
-Adding object sp
-Adding object t1
-Adding object t2
-Adding object t3
-Adding function printf
---- Entering scope
-Adding object rc
-Adding object fmt
---- Leaving scope containing
-Adding function printf
---- Entering scope
-Adding object fmt
---- Leaving scope containing
-Adding function f1
---- Entering scope
-Adding object x
-Adding object y
-Adding object w
---- Entering scope
---- Leaving scope containing
---- Leaving scope containing
-Adding function g1
---- Entering scope
-Adding object r
---- Entering scope
-Adding object x
-Adding object p
-Adding object y
-Adding object z
---- Leaving scope containing
---- Leaving scope containing
-Adding function main
---- Entering scope
-Adding object rc
-Adding object argc
-Adding object argv
---- Entering scope
-Adding object a
-Adding object b
-Adding object c
-Adding object d
---- Entering scope
---- Leaving scope containing
-Adding object t
---- Leaving scope containing
---- Leaving scope containing
Index: c/Tests/SynTree/Expected/Array.tst
===================================================================
--- src/Tests/SynTree/Expected/Array.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,51 +1,0 @@
-a1: open array of signed int 
-a2: variable length array of signed int 
-a4: array of double with dimension of constant expression 3.0 double 
-m1: open array of array of signed int with dimension of constant expression 3 signed int 
-m2: variable length array of variable length array of signed int 
-m4: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-T: typedef for signed int 
-fred: function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-        Declaration of a1: open array of signed int 
-        Declaration of a2: variable length array of signed int 
-        Declaration of a4: array of signed int with dimension of constant expression 3 signed int 
-        Declaration of T: array of signed int with dimension of constant expression 3 signed int 
-
-mary: function
-    with parameters
-      T: array of signed int with dimension of constant expression 3 signed int 
-      p1: const array of signed int with dimension of constant expression 3 signed int 
-      p2: static array of signed int with dimension of constant expression 3 signed int 
-      p3: const static array of signed int with dimension of constant expression 3 signed int 
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
-tom: function
-      accepting unspecified arguments
-    returning 
-      pointer to array of signed int with dimension of constant expression 3 signed int 
-    with body 
-      CompoundStmt
-
-jane: function
-      accepting unspecified arguments
-    returning 
-      pointer to function
-          with parameters
-            T: array of signed int with dimension of constant expression 3 signed int 
-            p1: const array of signed int with dimension of constant expression 3 signed int 
-            p2: static array of signed int with dimension of constant expression 3 signed int 
-            p3: const static array of signed int with dimension of constant expression 3 signed int 
-          returning 
-            signed int 
-
-    with body 
-      CompoundStmt
-
Index: c/Tests/SynTree/Expected/Constant0-1.tst
===================================================================
--- src/Tests/SynTree/Expected/Constant0-1.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,69 +1,0 @@
-0: signed int 
-0: const signed int 
-0: static const signed int 
-1: signed int 
-1: const signed int 
-1: static const signed int 
-0: signed int 
-1: signed int 
-0: const signed int 
-1: const signed int 
-0: static const signed int 
-1: static const signed int 
-struct __anonymous0
-    with members
-      i: signed int 
-
-0: instance of struct __anonymous0 
-struct __anonymous1
-    with members
-      i: signed int 
-
-1: const instance of struct __anonymous1 
-struct __anonymous2
-    with members
-      i: signed int 
-
-1: static const instance of struct __anonymous2 
-1: signed int 
-0: pointer to signed int 
-1: signed int 
-1: signed int 
-0: pointer to signed int 
-0: pointer to signed int 
-0: pointer to signed int 
-0: const pointer to signed int 
-0: const pointer to signed int 
-0: const pointer to signed int 
-struct __anonymous3
-    with members
-      i: signed int 
-
-0: pointer to instance of struct __anonymous3 
-x: pointer to signed int 
-0: pointer to signed int 
-x: const pointer to signed int 
-0: const pointer to signed int 
-x: static const pointer to signed int 
-0: static const pointer to signed int 
-struct __anonymous4
-    with members
-      i: signed int 
-
-0: pointer to instance of struct __anonymous4 
-struct __anonymous5
-    with members
-      i: signed int 
-
-0: const pointer to instance of struct __anonymous5 
-struct __anonymous6
-    with members
-      i: signed int 
-
-0: static const pointer to instance of struct __anonymous6 
-x: static pointer to signed int 
-0: static pointer to signed int 
-x: static const pointer to signed int 
-0: static const pointer to signed int 
-x: const pointer to pointer to signed int 
-0: const pointer to pointer to signed int 
Index: c/Tests/SynTree/Expected/Context.tst
===================================================================
--- src/Tests/SynTree/Expected/Context.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,63 +1,0 @@
-context has_q
-    with parameters
-      T: type
-
-    with members
-      q: function
-          with parameters
-            instance of type T (not function type) 
-          returning 
-            instance of type T (not function type) 
-
-
-f: forall
-      z: type
-        with assertions
-          ?=?: function
-              with parameters
-                pointer to instance of type z (not function type) 
-                instance of type z (not function type) 
-              returning 
-                instance of type z (not function type) 
-
-          instance of context has_q 
-            with parameters
-              instance of type z (not function type) 
-
-
-    function
-      accepting unspecified arguments
-    returning 
-      void 
-    with body 
-      CompoundStmt
-        Declaration of context has_r
-            with parameters
-              T: type
-              U: type
-
-            with members
-              r: function
-                  with parameters
-                    instance of type T (not function type) 
-                    function
-                        with parameters
-                          instance of type T (not function type) 
-                          instance of type U (not function type) 
-                        returning 
-                          instance of type T (not function type) 
-
-                  returning 
-                    instance of type T (not function type) 
-
-
-        Declaration of x: auto type
-        Declaration of y: auto type
-          with assertions
-            instance of context has_r 
-              with parameters
-                instance of type x (not function type) 
-                instance of type y (not function type) 
-
-
-
Index: c/Tests/SynTree/Expected/DeclarationSpecifier.tst
===================================================================
--- src/Tests/SynTree/Expected/DeclarationSpecifier.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,330 +1,0 @@
-Int: typedef for short signed int 
-x1: const volatile short signed int 
-x2: static const volatile short signed int 
-x3: static const volatile short signed int 
-x4: static const volatile short signed int 
-x4: static const volatile short signed int 
-x5: static const volatile short signed int 
-x6: static const volatile short signed int 
-x7: static const volatile short signed int 
-x8: static const volatile short signed int 
-struct __anonymous0
-    with members
-      i: signed int 
-
-x10: const volatile instance of struct __anonymous0 
-struct __anonymous1
-    with members
-      i: signed int 
-
-x11: const volatile instance of struct __anonymous1 
-struct __anonymous2
-    with members
-      i: signed int 
-
-x12: const volatile instance of struct __anonymous2 
-struct __anonymous3
-    with members
-      i: signed int 
-
-x13: static const volatile instance of struct __anonymous3 
-struct __anonymous4
-    with members
-      i: signed int 
-
-x14: static const volatile instance of struct __anonymous4 
-struct __anonymous5
-    with members
-      i: signed int 
-
-x15: static const volatile instance of struct __anonymous5 
-struct __anonymous6
-    with members
-      i: signed int 
-
-x16: static const volatile instance of struct __anonymous6 
-struct __anonymous7
-    with members
-      i: signed int 
-
-x17: static const volatile instance of struct __anonymous7 
-x20: const volatile instance of type Int (not function type) 
-x21: static const volatile instance of type Int (not function type) 
-x22: static const volatile instance of type Int (not function type) 
-x23: static const volatile instance of type Int (not function type) 
-x24: static const volatile instance of type Int (not function type) 
-x25: static const volatile instance of type Int (not function type) 
-x26: static const volatile instance of type Int (not function type) 
-x27: static const volatile instance of type Int (not function type) 
-struct __anonymous8
-    with members
-      i: instance of type Int (not function type) 
-
-x29: const volatile instance of struct __anonymous8 
-struct __anonymous9
-    with members
-      i: instance of type Int (not function type) 
-
-x30: const volatile instance of struct __anonymous9 
-struct __anonymous10
-    with members
-      i: instance of type Int (not function type) 
-
-x31: const volatile instance of struct __anonymous10 
-struct __anonymous11
-    with members
-      i: instance of type Int (not function type) 
-
-x32: static const volatile instance of struct __anonymous11 
-struct __anonymous12
-    with members
-      i: instance of type Int (not function type) 
-
-x33: static const volatile instance of struct __anonymous12 
-struct __anonymous13
-    with members
-      i: instance of type Int (not function type) 
-
-x34: static const volatile instance of struct __anonymous13 
-struct __anonymous14
-    with members
-      i: instance of type Int (not function type) 
-
-x35: static const volatile instance of struct __anonymous14 
-struct __anonymous15
-    with members
-      i: instance of type Int (not function type) 
-
-x36: static const volatile instance of struct __anonymous15 
-f01: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f02: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f03: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f04: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f05: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f06: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f07: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f08: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f11: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f12: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f13: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f14: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f15: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f16: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f17: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f18: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile signed int 
-
-f21: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile short signed int 
-
-f22: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile short signed int 
-
-f23: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile short signed int 
-
-f24: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile short signed int 
-
-f25: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile short signed int 
-
-f26: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile short signed int 
-
-f27: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile short signed int 
-
-f28: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile short signed int 
-
-struct __anonymous16
-    with members
-      i: signed int 
-
-f31: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of struct __anonymous16 
-
-struct __anonymous17
-    with members
-      i: signed int 
-
-f32: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of struct __anonymous17 
-
-struct __anonymous18
-    with members
-      i: signed int 
-
-f33: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of struct __anonymous18 
-
-struct __anonymous19
-    with members
-      i: signed int 
-
-f34: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of struct __anonymous19 
-
-struct __anonymous20
-    with members
-      i: signed int 
-
-f35: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of struct __anonymous20 
-
-struct __anonymous21
-    with members
-      i: signed int 
-
-f36: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of struct __anonymous21 
-
-struct __anonymous22
-    with members
-      i: signed int 
-
-f37: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of struct __anonymous22 
-
-struct __anonymous23
-    with members
-      i: signed int 
-
-f38: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of struct __anonymous23 
-
-f41: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of type Int (not function type) 
-
-f42: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of type Int (not function type) 
-
-f43: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of type Int (not function type) 
-
-f44: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of type Int (not function type) 
-
-f45: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of type Int (not function type) 
-
-f46: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of type Int (not function type) 
-
-f47: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of type Int (not function type) 
-
-f48: inline static function
-      accepting unspecified arguments
-    returning 
-      const volatile instance of type Int (not function type) 
-
Index: c/Tests/SynTree/Expected/Enum.tst
===================================================================
--- src/Tests/SynTree/Expected/Enum.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,28 +1,0 @@
-enum Colors
-    with members
-      Red: untyped entity 
-      Yellow: untyped entity 
-      Pink: untyped entity 
-      Blue: untyped entity 
-      Purple: untyped entity 
-      Orange: untyped entity 
-      Green: untyped entity 
-
-f: function
-    with parameters
-      void 
-    returning 
-      void 
-    with body 
-      CompoundStmt
-        Declaration of enum Fruits
-            with members
-              Apple: untyped entity 
-              Banana: untyped entity 
-              Pear: untyped entity 
-              Mango: untyped entity 
-
-        Declaration of fruit: instance of enum Fruits with initializer 
-          Simple Initializer:             Name: Mango
-
-
Index: c/Tests/SynTree/Expected/Forall.tst
===================================================================
--- src/Tests/SynTree/Expected/Forall.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,330 +1,0 @@
-f: typedef for pointer to forall
-      T: type
-        with assertions
-          ?=?: function
-              with parameters
-                pointer to instance of type T (not function type) 
-                instance of type T (not function type) 
-              returning 
-                instance of type T (not function type) 
-
-
-    function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-swap: forall
-      T: type
-        with assertions
-          ?=?: function
-              with parameters
-                pointer to instance of type T (not function type) 
-                instance of type T (not function type) 
-              returning 
-                instance of type T (not function type) 
-
-
-    function
-    with parameters
-      left: instance of type T (not function type) 
-      right: instance of type T (not function type) 
-    returning 
-      void 
-    with body 
-      CompoundStmt
-        Declaration of temp: instance of type T (not function type) with initializer 
-          Simple Initializer:             Name: left
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: left
-                Name: right
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: right
-                Name: temp
-
-
-context sumable
-    with parameters
-      T: type
-
-    with members
-      0: const instance of type T (not function type) 
-      ?+?: function
-          with parameters
-            instance of type T (not function type) 
-            instance of type T (not function type) 
-          returning 
-            instance of type T (not function type) 
-
-      ?++: function
-          with parameters
-            instance of type T (not function type) 
-          returning 
-            instance of type T (not function type) 
-
-      ?+=?: function
-          with parameters
-            instance of type T (not function type) 
-            instance of type T (not function type) 
-          returning 
-            instance of type T (not function type) 
-
-
-T1: type
-  with assertions
-    0: const instance of type T1 (not function type) 
-    ?+?: function
-        with parameters
-          instance of type T1 (not function type) 
-          instance of type T1 (not function type) 
-        returning 
-          instance of type T1 (not function type) 
-
-    ?++: function
-        with parameters
-          instance of type T1 (not function type) 
-        returning 
-          instance of type T1 (not function type) 
-
-    ?+=?: function
-        with parameters
-          instance of type T1 (not function type) 
-          instance of type T1 (not function type) 
-        returning 
-          instance of type T1 (not function type) 
-
-
-T2: type
-  with parameters
-    P1: type
-    P2: type
-
-T3: type
-  with assertions
-    instance of context sumable 
-      with parameters
-        instance of type T3 (not function type) 
-
-
-struct __anonymous0
-    with members
-      i: instance of type P1 (not function type) 
-      j: instance of type P2 (not function type) 
-
-T2: type for instance of struct __anonymous0 
-  with parameters
-    P1: type
-    P2: type
-
-  with assertions
-    instance of context sumable 
-      with parameters
-        instance of type T2 (not function type) 
-          with parameters
-            instance of type P1 (not function type) 
-            instance of type P2 (not function type) 
-
-
-
-w1: instance of type T2 (not function type) 
-  with parameters
-    signed int 
-    signed int 
-
-w2: typedef for instance of type T2 (not function type) 
-  with parameters
-    signed int 
-    signed int 
-
-g2: instance of type w2 (not function type) 
-w3: type for instance of type T2 (not function type) 
-  with parameters
-    signed int 
-    signed int 
-
-g3: instance of type w3 (not function type) 
-sum: forall
-      T: type
-        with assertions
-          ?=?: function
-              with parameters
-                pointer to instance of type T (not function type) 
-                instance of type T (not function type) 
-              returning 
-                instance of type T (not function type) 
-
-          instance of context sumable 
-            with parameters
-              instance of type T (not function type) 
-
-
-    function
-    with parameters
-      n: signed int 
-      a: open array of instance of type T (not function type) 
-    returning 
-      instance of type T (not function type) 
-    with body 
-      CompoundStmt
-        Declaration of total: instance of type T (not function type) with initializer 
-          Simple Initializer:             Name: 0
-
-        Declaration of i: signed int 
-                  Labels: {}
-          For Statement
-            initialization: 
-              Expression Statement:
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Name: i
-                    Name: 0
-
-            condition: 
-              Cast of:
-                Applying untyped: 
-                    Name: ?!=?
-                ...to: 
-                    Applying untyped: 
-                        Name: ?<?
-                    ...to: 
-                        Name: i
-                        Name: n
-                    Name: 0
-
-              to:
-                signed int 
-
-            increment: 
-              Applying untyped: 
-                  Name: ?+=?
-              ...to: 
-                  Address of:
-                    Name: i
-                  Name: 1
-
-            statement block: 
-              Expression Statement:
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Name: total
-                    Applying untyped: 
-                        Name: ?+?
-                    ...to: 
-                        Name: total
-                        Applying untyped: 
-                            Name: ?[?]
-                        ...to: 
-                            Name: a
-                            Name: i
-
-
-                  Return Statement, returning: Name: total
-
-
-
-twice: forall
-      T: type
-        with assertions
-          ?=?: function
-              with parameters
-                pointer to instance of type T (not function type) 
-                instance of type T (not function type) 
-              returning 
-                instance of type T (not function type) 
-
-          0: const instance of type T (not function type) 
-          ?+?: function
-              with parameters
-                instance of type T (not function type) 
-                instance of type T (not function type) 
-              returning 
-                instance of type T (not function type) 
-
-          ?++: function
-              with parameters
-                instance of type T (not function type) 
-              returning 
-                instance of type T (not function type) 
-
-          ?+=?: function
-              with parameters
-                instance of type T (not function type) 
-                instance of type T (not function type) 
-              returning 
-                instance of type T (not function type) 
-
-
-    function
-    with parameters
-      t: instance of type T (not function type) 
-    returning 
-      instance of type T (not function type) 
-    with body 
-      CompoundStmt
-                  Return Statement, returning: Applying untyped: 
-    Name: ?+?
-...to: 
-    Name: t
-    Name: t
-
-
-
-main: C function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-        Declaration of x: signed int with initializer 
-          Simple Initializer:             Name: 1
-
-        Declaration of y: signed int with initializer 
-          Simple Initializer: constant expression 2 signed int 
-        Declaration of a: array of signed int with dimension of constant expression 10 signed int 
-        Declaration of f: float 
-                  Expression Statement:
-            Applying untyped: 
-                Name: swap
-            ...to: 
-                Name: x
-                Name: y
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: twice
-            ...to: 
-                Name: x
-                Name: y
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: f
-                Applying untyped: 
-                    Name: min
-                ...to: 
-constant expression 4.0 double constant expression 3.0 double 
-                  Expression Statement:
-            Applying untyped: 
-                Name: sum
-            ...to: 
-constant expression 10 signed int                 Name: a
-
-
Index: c/Tests/SynTree/Expected/Functions.tst
===================================================================
--- src/Tests/SynTree/Expected/Functions.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,700 +1,0 @@
-h: function
-    with parameters
-      void 
-    returning 
-      void 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      function
-          with parameters
-            void 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            void 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      g: function
-          with parameters
-            void 
-          returning 
-            void 
-
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-                  Expression Statement:
-            Applying untyped: 
-                Applying untyped: 
-                    Name: *?
-                ...to: 
-                    Name: g
-            ...to: 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: g
-            ...to: 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: g
-                Name: h
-
-
-f1: function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
-f2: function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
-f3: function
-      accepting unspecified arguments
-    returning 
-      pointer to function
-            accepting unspecified arguments
-          returning 
-            signed int 
-
-    with body 
-      CompoundStmt
-
-f4: function
-      accepting unspecified arguments
-    returning 
-      pointer to signed int 
-    with body 
-      CompoundStmt
-
-f5: function
-      accepting unspecified arguments
-    returning 
-      pointer to function
-            accepting unspecified arguments
-          returning 
-            signed int 
-
-    with body 
-      CompoundStmt
-
-f6: function
-      accepting unspecified arguments
-    returning 
-      pointer to signed int 
-    with body 
-      CompoundStmt
-
-f7: function
-      accepting unspecified arguments
-    returning 
-      pointer to signed int 
-    with body 
-      CompoundStmt
-
-f8: function
-      accepting unspecified arguments
-    returning 
-      pointer to pointer to signed int 
-    with body 
-      CompoundStmt
-
-f9: function
-      accepting unspecified arguments
-    returning 
-      pointer to const pointer to signed int 
-    with body 
-      CompoundStmt
-
-f10: function
-      accepting unspecified arguments
-    returning 
-      pointer to open array of signed int 
-    with body 
-      CompoundStmt
-
-f11: function
-      accepting unspecified arguments
-    returning 
-      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
-    with body 
-      CompoundStmt
-
-f12: function
-      accepting unspecified arguments
-    returning 
-      pointer to open array of array of signed int with dimension of constant expression 3 signed int 
-    with body 
-      CompoundStmt
-
-fII1: function
-    with parameters
-      i: signed int 
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
-fII2: function
-    with parameters
-      i: signed int 
-    returning 
-      const signed int 
-    with body 
-      CompoundStmt
-
-fII3: auto function
-    with parameters
-      i: signed int 
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
-fII4: auto function
-    with parameters
-      i: signed int 
-    returning 
-      const signed int 
-    with body 
-      CompoundStmt
-
-fII5: function
-      accepting unspecified arguments
-    returning 
-      pointer to signed int 
-    with body 
-      CompoundStmt
-
-fII6: function
-      accepting unspecified arguments
-    returning 
-      const pointer to signed int 
-    with body 
-      CompoundStmt
-
-fII7: function
-      accepting unspecified arguments
-    returning 
-      pointer to const long signed int 
-    with body 
-      CompoundStmt
-
-fII8: static function
-      accepting unspecified arguments
-    returning 
-      pointer to const long signed int 
-    with body 
-      CompoundStmt
-
-fII9: static function
-      accepting unspecified arguments
-    returning 
-      pointer to const long signed int 
-    with body 
-      CompoundStmt
-
-fO1: function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with parameter names
-      i
-    with parameter declarations
-      i: signed int 
-    with body 
-      CompoundStmt
-
-fO2: function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with parameter names
-      i
-    with parameter declarations
-      i: signed int 
-    with body 
-      CompoundStmt
-
-fO3: function
-      accepting unspecified arguments
-    returning 
-      const signed int 
-    with parameter names
-      i
-    with parameter declarations
-      i: signed int 
-    with body 
-      CompoundStmt
-
-fO4: auto function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with parameter names
-      i
-    with parameter declarations
-      i: signed int 
-    with body 
-      CompoundStmt
-
-fO5: auto function
-      accepting unspecified arguments
-    returning 
-      const signed int 
-    with parameter names
-      i
-    with parameter declarations
-      i: signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    returning 
-      nothing 
-
-f: function
-    returning 
-      signed int 
-
-f: function
-    with parameters
-      signed int 
-    returning 
-      nothing 
-
-f: function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f: function
-    returning 
-      nothing 
-    with body 
-      CompoundStmt
-
-f: function
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      signed int 
-    returning 
-      nothing 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    returning 
-      x: signed int 
-
-f: function
-    with parameters
-      x: signed int 
-    returning 
-      nothing 
-
-f: function
-    with parameters
-      x: signed int 
-    returning 
-      x: signed int 
-
-f: function
-    returning 
-      x: signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      x: signed int 
-    returning 
-      nothing 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      x: signed int 
-    returning 
-      x: signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    returning 
-      signed int 
-      x: signed int 
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-    returning 
-      nothing 
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-    returning 
-      signed int 
-      x: signed int 
-
-f: function
-    returning 
-      signed int 
-      x: signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-    returning 
-      nothing 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-    returning 
-      signed int 
-      x: signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    returning 
-      signed int 
-      x: signed int 
-      signed int 
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-      signed int 
-    returning 
-      nothing 
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-      signed int 
-    returning 
-      signed int 
-      x: signed int 
-      signed int 
-
-f: function
-    returning 
-      signed int 
-      x: signed int 
-      signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-      signed int 
-    returning 
-      nothing 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-      signed int 
-    returning 
-      signed int 
-      x: signed int 
-      signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    returning 
-      signed int 
-      x: signed int 
-      y: pointer to signed int 
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-      y: pointer to signed int 
-    returning 
-      nothing 
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-      y: pointer to signed int 
-    returning 
-      signed int 
-      x: signed int 
-      y: pointer to signed int 
-
-f: function
-    returning 
-      signed int 
-      x: signed int 
-      y: pointer to signed int 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-      y: pointer to signed int 
-    returning 
-      nothing 
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      signed int 
-      x: signed int 
-      y: pointer to signed int 
-    returning 
-      signed int 
-      x: signed int 
-      y: pointer to signed int 
-    with body 
-      CompoundStmt
-
-f11: function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f12: function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f: function
-    with parameters
-      function
-          with parameters
-            signed int 
-            p: signed int 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
-        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int 
-        Declaration of p: pointer to open array of pointer to function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-
-f1: static function
-      accepting unspecified arguments
-    returning 
-      pointer to const signed int 
-    with body 
-      CompoundStmt
-
-f2: static function
-    returning 
-      const signed int 
-    with body 
-      CompoundStmt
-
-f3: inline static function
-    returning 
-      const pointer to signed int 
-    with body 
-      CompoundStmt
-
-f4: inline static function
-    returning 
-      const tuple of types
-          pointer to signed int 
-          signed int 
-
-    with body 
-      CompoundStmt
-
-f5: static function
-    returning 
-      const tuple of types
-          pointer to signed int 
-          const signed int 
-
-    with body 
-      CompoundStmt
-
-f: function
-    with parameters
-      function
-            accepting unspecified arguments
-          returning 
-            signed int 
-
-      function
-            accepting unspecified arguments
-          returning 
-            pointer to signed int 
-
-      function
-            accepting unspecified arguments
-          returning 
-            pointer to pointer to signed int 
-
-      function
-            accepting unspecified arguments
-          returning 
-            pointer to const pointer to signed int 
-
-      function
-            accepting unspecified arguments
-          returning 
-            const pointer to const pointer to signed int 
-
-      open array of signed int 
-      array of signed int with dimension of constant expression 10 signed int 
-      open array of pointer to signed int 
-      array of pointer to signed int with dimension of constant expression 10 signed int 
-      open array of pointer to pointer to signed int 
-      array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-      open array of pointer to const pointer to signed int 
-      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-      open array of const pointer to const pointer to signed int 
-      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-    returning 
-      signed int 
-
-f: function
-    with parameters
-      function
-            accepting unspecified arguments
-          returning 
-            signed int 
-
-      function
-            accepting unspecified arguments
-          returning 
-            pointer to signed int 
-
-      function
-            accepting unspecified arguments
-          returning 
-            pointer to pointer to signed int 
-
-      function
-            accepting unspecified arguments
-          returning 
-            pointer to const pointer to signed int 
-
-      function
-            accepting unspecified arguments
-          returning 
-            const pointer to const pointer to signed int 
-
-      open array of signed int 
-      array of signed int with dimension of constant expression 10 signed int 
-      open array of pointer to signed int 
-      array of pointer to signed int with dimension of constant expression 10 signed int 
-      open array of pointer to pointer to signed int 
-      array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-      open array of pointer to const pointer to signed int 
-      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-      open array of const pointer to const pointer to signed int 
-      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
-T: typedef for signed int 
-f: function
-    with parameters
-      function
-          with parameters
-            instance of type T (not function type) 
-          returning 
-            instance of type T (not function type) 
-
-      T: instance of type T (not function type) 
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-                  Expression Statement:
-            Applying untyped: 
-                Name: T
-            ...to: 
-                Name: T
-
-
Index: c/Tests/SynTree/Expected/IdentFuncDeclarator.tst
===================================================================
--- src/Tests/SynTree/Expected/IdentFuncDeclarator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,185 +1,0 @@
-main: C function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-        Declaration of f1: signed int 
-        Declaration of f2: signed int 
-        Declaration of f3: pointer to signed int 
-        Declaration of f4: pointer to pointer to signed int 
-        Declaration of f5: pointer to const pointer to signed int 
-        Declaration of f6: const pointer to const pointer to signed int 
-        Declaration of f7: pointer to signed int 
-        Declaration of f8: pointer to pointer to signed int 
-        Declaration of f9: pointer to const pointer to signed int 
-        Declaration of f10: const pointer to const pointer to signed int 
-        Declaration of f11: pointer to signed int 
-        Declaration of f12: pointer to pointer to signed int 
-        Declaration of f13: pointer to const pointer to signed int 
-        Declaration of f14: const pointer to const pointer to signed int 
-        Declaration of f15: open array of signed int 
-        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
-        Declaration of f17: open array of signed int 
-        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
-        Declaration of f19: open array of pointer to signed int 
-        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f21: open array of pointer to pointer to signed int 
-        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f23: open array of pointer to const pointer to signed int 
-        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f25: open array of const pointer to const pointer to signed int 
-        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f27: open array of pointer to signed int 
-        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f29: open array of pointer to pointer to signed int 
-        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f31: open array of pointer to const pointer to signed int 
-        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f33: open array of const pointer to const pointer to signed int 
-        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f35: open array of pointer to signed int 
-        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f37: open array of pointer to pointer to signed int 
-        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f39: open array of pointer to const pointer to signed int 
-        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f41: open array of const pointer to const pointer to signed int 
-        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
-        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
-        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
-        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f65: function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f66: function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f67: function
-            with parameters
-              signed int 
-            returning 
-              pointer to signed int 
-
-        Declaration of f68: function
-            with parameters
-              signed int 
-            returning 
-              pointer to pointer to signed int 
-
-        Declaration of f69: function
-            with parameters
-              signed int 
-            returning 
-              pointer to const pointer to signed int 
-
-        Declaration of f70: function
-            with parameters
-              signed int 
-            returning 
-              const pointer to const pointer to signed int 
-
-        Declaration of f71: function
-            with parameters
-              signed int 
-            returning 
-              pointer to signed int 
-
-        Declaration of f72: function
-            with parameters
-              signed int 
-            returning 
-              pointer to pointer to signed int 
-
-        Declaration of f73: function
-            with parameters
-              signed int 
-            returning 
-              pointer to const pointer to signed int 
-
-        Declaration of f74: function
-            with parameters
-              signed int 
-            returning 
-              const pointer to const pointer to signed int 
-
-        Declaration of f75: pointer to function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f76: pointer to pointer to function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f77: pointer to const pointer to function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f78: const pointer to const pointer to function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f79: pointer to function
-            with parameters
-              signed int 
-            returning 
-              pointer to function
-                    accepting unspecified arguments
-                  returning 
-                    signed int 
-
-
-        Declaration of f80: const pointer to function
-            with parameters
-              signed int 
-            returning 
-              pointer to function
-                    accepting unspecified arguments
-                  returning 
-                    signed int 
-
-
-        Declaration of f81: const pointer to function
-            with parameters
-              signed int 
-            returning 
-              const pointer to function
-                    accepting unspecified arguments
-                  returning 
-                    signed int 
-
-
-
Index: c/Tests/SynTree/Expected/Initialization.tst
===================================================================
--- src/Tests/SynTree/Expected/Initialization.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,83 +1,0 @@
-x21: pointer to signed int with initializer 
-  Simple Initializer:     Name: 0
-
-x22: signed int with initializer 
-  Simple Initializer:     Name: 0
-
-x21: pointer to signed int with initializer 
-  Simple Initializer:     Name: 0
-
-x22: signed int with initializer 
-  Simple Initializer:     Name: 0
-
-y1: array of signed int with dimension of constant expression 20 signed int 
-y2: array of signed int with dimension of constant expression 20 signed int 
-struct __anonymous0
-    with members
-      w: tuple of types
-          signed int 
-
-
-a: instance of struct __anonymous0 with initializer 
-  Compound initializer:  
-    Simple Initializer:       Tuple:
-        constant expression 2 signed int 
-
-      designated by:         Name: w
-
-struct __anonymous1
-    with members
-      a: array of signed int with dimension of constant expression 3 signed int 
-      b: signed int 
-
-w: open array of instance of struct __anonymous1 with initializer 
-  Compound initializer:  
-    Compound initializer:        designated by: [        Name: 0
-        Name: a
-      ]
-      Simple Initializer:         Name: 1
-
-    Simple Initializer:       Name: 1
-
-      designated by:         Name: 0
-        Name: b
-
-    Simple Initializer: constant expression 2 signed int 
-      designated by:         Name: 1
-        Name: a
-        Name: 0
-
-struct __anonymous3
-    with members
-      f1: signed int 
-      f2: signed int 
-      f3: signed int 
-      struct __anonymous2
-          with members
-            g1: signed int 
-            g2: signed int 
-            g3: signed int 
-
-      f4: array of instance of struct __anonymous2 with dimension of constant expression 4 signed int 
-
-v7: instance of struct __anonymous3 with initializer 
-  Compound initializer:  
-    Simple Initializer: constant expression 4 signed int 
-      designated by:         Name: f1
-
-    Simple Initializer: constant expression 3 signed int 
-      designated by:         Name: f2
-
-    Compound initializer:        designated by: [        Name: f4
-constant expression 2 signed int       ]
-      Simple Initializer: constant expression 3 signed int 
-        designated by:           Name: g1
-
-      Simple Initializer:         Name: 0
-
-        designated by:           Name: g3
-
-    Simple Initializer: constant expression 7 signed int 
-      designated by:         Name: f4
-constant expression 3 signed int         Name: g3
-
Index: c/Tests/SynTree/Expected/Scope.tst
===================================================================
--- src/Tests/SynTree/Expected/Scope.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,157 +1,0 @@
-x: signed int 
-y: typedef for double 
-t: typedef for float 
-z: instance of type y (not function type) 
-struct __anonymous0
-    with members
-      a: signed int 
-      b: double 
-
-u: type for instance of struct __anonymous0 
-f: function
-    with parameters
-      y: signed int 
-    returning 
-      signed int 
-
-q: instance of type y (not function type) 
-w: function
-    with parameters
-      y: instance of type y (not function type) 
-      v: instance of type u (not function type) 
-    returning 
-      instance of type y (not function type) 
-    with body 
-      CompoundStmt
-        Declaration of x: type
-          with assertions
-            t: function
-                with parameters
-                  instance of type u (not function type) 
-                returning 
-                  instance of type x (not function type) 
-
-
-        Declaration of u: instance of type u (not function type) with initializer 
-          Simple Initializer:             Name: y
-
-        Declaration of z: instance of type x (not function type) with initializer 
-          Simple Initializer:             Applying untyped: 
-                Name: t
-            ...to: 
-                Name: u
-
-
-p: instance of type y (not function type) 
-context has_u
-    with parameters
-      z: type
-
-    with members
-      u: function
-          with parameters
-            instance of type z (not function type) 
-          returning 
-            instance of type z (not function type) 
-
-
-q: forall
-      t: type
-        with assertions
-          ?=?: function
-              with parameters
-                pointer to instance of type t (not function type) 
-                instance of type t (not function type) 
-              returning 
-                instance of type t (not function type) 
-
-          instance of context has_u 
-            with parameters
-              instance of type t (not function type) 
-
-
-    function
-    with parameters
-      the_t: instance of type t (not function type) 
-    returning 
-      instance of type y (not function type) 
-    with body 
-      CompoundStmt
-        Declaration of y: instance of type t (not function type) with initializer 
-          Simple Initializer:             Applying untyped: 
-                Name: u
-            ...to: 
-                Name: the_t
-
-
-f: function
-    with parameters
-      p: instance of type y (not function type) 
-    returning 
-      instance of type t (not function type) 
-    with body 
-      CompoundStmt
-        Declaration of y: signed int 
-        Declaration of x: typedef for char 
-                  CompoundStmt
-            Declaration of y: instance of type x (not function type) 
-            Declaration of z: typedef for instance of type x (not function type) 
-                          CompoundStmt
-                Declaration of x: instance of type z (not function type) 
-                Declaration of y: typedef for instance of type z (not function type) 
-                Declaration of z: instance of type y (not function type) with initializer 
-                  Simple Initializer:                     Name: x
-
-
-            Declaration of x: instance of type z (not function type) with initializer 
-              Simple Initializer:                 Name: y
-
-
-        Declaration of q: instance of type x (not function type) with initializer 
-          Simple Initializer:             Name: y
-
-
-g: function
-    with parameters
-      void 
-    returning 
-      instance of type t (not function type) 
-    with body 
-      CompoundStmt
-        Declaration of x: typedef for char 
-                  Try Statement
-            with block: 
-              CompoundStmt
-                                  Expression Statement:
-                    Applying untyped: 
-                        Name: some_func
-                    ...to: 
-
-            and handlers: 
-              Catch Statement
-              ... catching
-x: instance of type x (not function type) 
-
-        Declaration of z: instance of type x (not function type) 
-
-q: function
-      accepting unspecified arguments
-    returning 
-      instance of type y (not function type) 
-    with parameter names
-      i
-    with parameter declarations
-      i: signed int 
-    with body 
-      CompoundStmt
-                  Switch on condition: Name: i
-
-              Case Name: 0
-
-                  Return Statement, returning: Name: q
-
-              Default 
-                  Return Statement, returning: Name: i
-
-
-
Index: c/Tests/SynTree/Expected/StructMember.tst
===================================================================
--- src/Tests/SynTree/Expected/StructMember.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,71 +1,0 @@
-T: typedef for signed int 
-struct S
-    with members
-      m1: signed int with bitfield width constant expression 3 signed int 
-      m2: signed int with bitfield width constant expression 4 signed int 
-      signed int with bitfield width constant expression 2 signed int 
-      signed int with bitfield width constant expression 3 signed int 
-      signed int with bitfield width constant expression 4 signed int 
-      m3: signed int 
-      m4: signed int 
-      m5: signed int 
-      m6: signed int 
-      m7: pointer to signed int 
-      m8: pointer to signed int 
-      m9: pointer to signed int 
-      m10: pointer to function
-            accepting unspecified arguments
-          returning 
-            signed int 
-
-      m11: pointer to function
-          with parameters
-            signed int 
-          returning 
-            pointer to signed int 
-
-      T: instance of type T (not function type) 
-      T: instance of type T (not function type) 
-      m12: pointer to signed int 
-      m13: pointer to signed int 
-      m14: pointer to function
-          with parameters
-            signed int 
-          returning 
-            pointer to signed int 
-
-      signed int 
-      signed int 
-      signed int 
-      signed int 
-      pointer to signed int 
-      signed int 
-      signed int 
-      pointer to signed int 
-      pointer to signed int 
-      pointer to signed int 
-      pointer to signed int 
-      pointer to signed int 
-      pointer to signed int 
-      pointer to function
-            accepting unspecified arguments
-          returning 
-            signed int 
-
-      pointer to pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      instance of type T (not function type) 
-
-s: instance of struct S 
-union U
-    with members
-      m1: array of signed int with dimension of constant expression 5 signed int 
-      m2: array of signed int with dimension of constant expression 5 signed int 
-      m3: pointer to signed int 
-      m4: pointer to signed int 
-
-u: instance of union U 
Index: c/Tests/SynTree/Expected/Tuple.tst
===================================================================
--- src/Tests/SynTree/Expected/Tuple.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,513 +1,0 @@
-f: function
-    with parameters
-      signed int 
-      signed int 
-    returning 
-      signed int 
-
-g: function
-    with parameters
-      signed int 
-      signed int 
-      signed int 
-    returning 
-      signed int 
-
-h: static function
-    with parameters
-      a: signed int 
-      b: signed int 
-      c: pointer to signed int 
-      d: open array of char 
-    returning 
-      signed int 
-      signed int 
-      signed int 
-      signed int 
-
-struct inner
-    with members
-      f2: signed int 
-      f3: signed int 
-
-struct outer
-    with members
-      f1: signed int 
-      i: instance of struct inner 
-      f4: double 
-
-s: instance of struct outer 
-sp: pointer to instance of struct outer 
-t1: const volatile tuple of types
-    signed int 
-    signed int 
-
-t2: static const tuple of types
-    signed int 
-    const signed int 
-
-t3: static const tuple of types
-    signed int 
-    const signed int 
-
-printf: function
-    with parameters
-      fmt: pointer to char 
-      and a variable number of other arguments
-    returning 
-      rc: signed int 
-
-printf: function
-    with parameters
-      fmt: pointer to char 
-      and a variable number of other arguments
-    returning 
-      signed int 
-
-f1: function
-    with parameters
-      w: signed int 
-    returning 
-      x: short signed int 
-      y: unsigned int 
-    with body 
-      CompoundStmt
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: y
-
-                                          Name: x
-
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Tuple:
-                                                  Name: x
-
-                                                  Name: y
-
-                    Tuple:
-                                              Name: w
-
-                      constant expression 23 signed int 
-
-
-g1: function
-    returning 
-      r: tuple of types
-          signed int 
-          char 
-          long signed int 
-          signed int 
-
-    with body 
-      CompoundStmt
-        Declaration of x: short signed int 
-        Declaration of p: short signed int 
-        Declaration of y: unsigned int 
-        Declaration of z: tuple of types
-            signed int 
-            signed int 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: x
-
-                                          Name: y
-
-                                          Name: z
-
-                Tuple:
-                                      Name: p
-
-                                      Applying untyped: 
-                        Name: f
-                    ...to: 
-constant expression 17 signed int 
-                  constant expression 3 signed int 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: r
-                Tuple:
-                                      Name: x
-
-                                      Name: y
-
-                                      Name: z
-
-
-
-main: C function
-    with parameters
-      argc: signed int 
-      argv: pointer to pointer to char 
-    returning 
-      rc: signed int 
-    with body 
-      CompoundStmt
-        Declaration of a: signed int 
-        Declaration of b: signed int 
-        Declaration of c: signed int 
-        Declaration of d: signed int 
-        Declaration of t: instance of struct outer with initializer 
-          Compound initializer:  
-            Simple Initializer:               Tuple:
-                                  Name: 1
-
-                constant expression 7.0 double 
-
-              designated by:                 Name: f1
-                Name: f4
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: f
-            ...to: 
-                Tuple:
-                  constant expression 3 signed int 
-                  constant expression 5 signed int 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: g
-            ...to: 
-                Tuple:
-                  constant expression 3 signed int 
-                  constant expression 5 signed int 
-constant expression 3 signed int 
-                  Expression Statement:
-            Applying untyped: 
-                Name: f
-            ...to: 
-                Name: t1
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: g
-            ...to: 
-                Name: t1
-constant expression 3 signed int 
-                  Expression Statement:
-            Tuple:
-              constant expression 3 signed int 
-              constant expression 5 signed int 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: a
-
-                                          Name: b
-
-constant expression 3 signed int 
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: a
-
-                                          Name: b
-
-                Tuple:
-                  constant expression 4.6 double 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: a
-
-                                          Name: b
-
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Tuple:
-                                                  Name: c
-
-                                                  Name: d
-
-                    Tuple:
-                      constant expression 3 signed int 
-                      constant expression 5 signed int 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: a
-
-                                          Name: b
-
-                                          Tuple:
-                                                  Name: c
-
-
-                Tuple:
-                  constant expression 2 signed int 
-                                      Tuple:
-                                              Name: a
-
-                                              Name: b
-
-
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: a
-
-                                          Name: b
-
-                Conditional expression on: 
-                  Cast of:
-                    Applying untyped: 
-                        Name: ?!=?
-                    ...to: 
-                        Applying untyped: 
-                            Name: ?>?
-                        ...to: 
-constant expression 3 signed int constant expression 4 signed int                         Name: 0
-
-                  to:
-                    signed int 
-                First alternative:
-                  Tuple:
-                                          Name: b
-
-                    constant expression 6 signed int 
-                Second alternative:
-                  Tuple:
-                    constant expression 7 signed int 
-                    constant expression 8 signed int 
-
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: t1
-                Tuple:
-                                      Name: a
-
-                                      Name: b
-
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: t1
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Name: t2
-                    Tuple:
-                                              Name: a
-
-                                              Name: b
-
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: a
-
-                                          Name: b
-
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Tuple:
-                                                  Name: c
-
-                                                  Name: d
-
-                    Applying untyped: 
-                        Name: ?+=?
-                    ...to: 
-                        Address of:
-                          Name: d
-                        Applying untyped: 
-                            Name: ?+=?
-                        ...to: 
-                            Address of:
-                              Name: c
-                            Name: 1
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: a
-
-                                          Name: b
-
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Tuple:
-                                                  Name: c
-
-                                                  Name: d
-
-                    Name: t1
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: a
-
-                                          Name: b
-
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Name: t1
-                    Tuple:
-                                              Name: c
-
-                                              Name: d
-
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Tuple:
-                                          Name: a
-
-                                          Name: b
-
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Name: t1
-                    Applying untyped: 
-                        Name: ?=?
-                    ...to: 
-                        Address of:
-                          Name: t2
-                        Tuple:
-                                                      Name: c
-
-                                                      Name: d
-
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: t1
-                Applying untyped: 
-                    Name: ?=?
-                ...to: 
-                    Address of:
-                      Tuple:
-                        constant expression 3 signed int 
-                        constant expression 4 signed int 
-                    Applying untyped: 
-                        Name: ?=?
-                    ...to: 
-                        Address of:
-                          Tuple:
-                            constant expression 3 signed int 
-                            constant expression 4 signed int 
-                        Applying untyped: 
-                            Name: ?=?
-                        ...to: 
-                            Address of:
-                              Name: t1
-                            Tuple:
-                              constant expression 3 signed int 
-                              constant expression 4 signed int 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: s
-                Tuple:
-                  constant expression 11 signed int 
-                  constant expression 12 signed int 
-                  constant expression 13 signed int 
-                  constant expression 3.14159 double 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: s
-                Applying untyped: 
-                    Name: h
-                ...to: 
-constant expression 3 signed int constant expression 3 signed int                     Name: 0
-constant expression "abc" array of char with dimension of constant expression 6 unsigned int 
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: sp
-                Name: sp
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: printf
-            ...to: 
-constant expression "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n" array of char with dimension of constant expression 47 unsigned int                 Name: s
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: ?=?
-            ...to: 
-                Address of:
-                  Name: rc
-                Name: 0
-
-
Index: c/Tests/SynTree/Expected/TypeGenerator.tst
===================================================================
--- src/Tests/SynTree/Expected/TypeGenerator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,117 +1,0 @@
-context addable
-    with parameters
-      T: type
-
-    with members
-      ?+?: function
-          with parameters
-            instance of type T (not function type) 
-            instance of type T (not function type) 
-          returning 
-            instance of type T (not function type) 
-
-
-struct __anonymous0
-    with members
-      data: instance of type T (not function type) 
-      next: pointer to instance of type List (not function type) 
-        with parameters
-          instance of type T (not function type) 
-
-
-List: type for pointer to instance of struct __anonymous0 
-  with parameters
-    T: type
-      with assertions
-        instance of context addable 
-          with parameters
-            instance of type T (not function type) 
-
-
-
-  with assertions
-    instance of context addable 
-      with parameters
-        instance of type T (not function type) 
-
-
-ListOfIntegers: typedef for instance of type List (not function type) 
-  with parameters
-    signed int 
-
-li: instance of type ListOfIntegers (not function type) 
-f: function
-    with parameters
-      g: pointer to function
-          with parameters
-            signed int 
-          returning 
-            instance of type List (not function type) 
-              with parameters
-                signed int 
-
-
-    returning 
-      signed int 
-
-h: function
-    with parameters
-      p: pointer to instance of type List (not function type) 
-        with parameters
-          signed int 
-
-    returning 
-      signed int 
-
-struct node
-    with parameters
-      T: type
-        with assertions
-          instance of context addable 
-            with parameters
-              instance of type T (not function type) 
-
-
-
-    with members
-      data: instance of type T (not function type) 
-      next: pointer to instance of struct node 
-        with parameters
-          instance of type T (not function type) 
-
-
-List: type for pointer to instance of struct node 
-  with parameters
-    instance of type T (not function type) 
-
-  with parameters
-    T: type
-
-my_list: instance of type List (not function type) 
-  with parameters
-    signed int 
-
-Complex: type
-  with assertions
-    instance of context addable 
-      with parameters
-        instance of type Complex (not function type) 
-
-
-main: C function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-                  Expression Statement:
-            Cast of:
-              Name: my_list
-
-            to:
-              instance of struct node 
-                with parameters
-                  signed int 
-
-
-
Index: c/Tests/SynTree/Expected/Typedef.tst
===================================================================
--- src/Tests/SynTree/Expected/Typedef.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,96 +1,0 @@
-T: typedef for signed int 
-f: function
-    with parameters
-      void 
-    returning 
-      void 
-    with body 
-      CompoundStmt
-        Declaration of T: function
-            with parameters
-              instance of type T (not function type) 
-            returning 
-              signed int 
-
-                  Expression Statement:
-            Applying untyped: 
-                Name: T
-            ...to: 
-constant expression 3 signed int 
-
-struct __anonymous0
-    with members
-      T: instance of type T (not function type) 
-
-fred: instance of struct __anonymous0 with initializer 
-  Compound initializer:  
-    Simple Initializer: constant expression 3 signed int 
-a: typedef for pointer to function
-    with parameters
-      signed int 
-      char 
-    returning 
-      signed int 
-
-b: instance of type a (not function type) 
-g: function
-    with parameters
-      void 
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-        Declaration of a: double 
-
-c: instance of type a (not function type) 
-main: C function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
-arrayOf10Pointers: typedef for array of pointer to signed int with dimension of constant expression 10 signed int 
-x: instance of type arrayOf10Pointers (not function type) 
-constantPointer: typedef for const pointer to signed int 
-funcPtr: typedef for pointer to function
-    with parameters
-      open array of signed int 
-    returning 
-      signed int 
-
-funcProto: typedef for function
-    with parameters
-      open array of signed int 
-    returning 
-      signed int 
-
-tupleType: typedef for tuple of types
-    signed int 
-    signed int 
-
-tupleTypePtr: typedef for pointer to tuple of types
-    signed int 
-    signed int 
-
-a: typedef for pointer to signed int 
-b: typedef for pointer to signed int 
-f: typedef for function
-    with parameters
-      pointer to signed int 
-    returning 
-      signed int 
-
-g: typedef for function
-    with parameters
-      pointer to signed int 
-    returning 
-      signed int 
-
-t: typedef for tuple of types
-    pointer to static array of signed int with dimension of constant expression 10 signed int 
-
-f: typedef for function
-    returning 
-      x: pointer to static array of signed int with dimension of constant expression 10 signed int 
-
Index: c/Tests/SynTree/Expected/TypedefDeclarator.tst
===================================================================
--- src/Tests/SynTree/Expected/TypedefDeclarator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,275 +1,0 @@
-f0: typedef for signed int 
-f1: typedef for signed int 
-f2: typedef for signed int 
-f3: typedef for signed int 
-f4: typedef for signed int 
-f5: typedef for signed int 
-f6: typedef for signed int 
-f7: typedef for signed int 
-f8: typedef for signed int 
-f9: typedef for signed int 
-f10: typedef for signed int 
-f11: typedef for signed int 
-f12: typedef for signed int 
-f13: typedef for signed int 
-f14: typedef for signed int 
-f15: typedef for signed int 
-f16: typedef for signed int 
-f17: typedef for signed int 
-f18: typedef for signed int 
-f19: typedef for signed int 
-f20: typedef for signed int 
-f21: typedef for signed int 
-f22: typedef for signed int 
-f23: typedef for signed int 
-f24: typedef for signed int 
-f25: typedef for signed int 
-f26: typedef for signed int 
-f27: typedef for signed int 
-f28: typedef for signed int 
-f29: typedef for signed int 
-f30: typedef for signed int 
-f31: typedef for signed int 
-f32: typedef for signed int 
-f33: typedef for signed int 
-f34: typedef for signed int 
-f35: typedef for signed int 
-f36: typedef for signed int 
-f37: typedef for signed int 
-f38: typedef for signed int 
-f39: typedef for signed int 
-f40: typedef for signed int 
-f41: typedef for signed int 
-f42: typedef for signed int 
-f43: typedef for signed int 
-f44: typedef for signed int 
-f45: typedef for signed int 
-f46: typedef for signed int 
-f47: typedef for signed int 
-f48: typedef for signed int 
-f49: typedef for signed int 
-f50: typedef for signed int 
-f51: typedef for signed int 
-f52: typedef for signed int 
-f53: typedef for signed int 
-f54: typedef for signed int 
-f55: typedef for signed int 
-f56: typedef for signed int 
-f57: typedef for signed int 
-f58: typedef for signed int 
-f59: typedef for signed int 
-f60: typedef for signed int 
-f61: typedef for signed int 
-f62: typedef for signed int 
-f63: typedef for signed int 
-f64: typedef for signed int 
-f65: typedef for signed int 
-f66: typedef for signed int 
-f67: typedef for signed int 
-f68: typedef for signed int 
-f69: typedef for signed int 
-f70: typedef for signed int 
-f71: typedef for signed int 
-f72: typedef for signed int 
-f73: typedef for signed int 
-f74: typedef for signed int 
-f75: typedef for signed int 
-f76: typedef for signed int 
-f77: typedef for signed int 
-f78: typedef for signed int 
-f79: typedef for signed int 
-f80: typedef for signed int 
-f81: typedef for signed int 
-f82: typedef for signed int 
-f83: typedef for signed int 
-f84: typedef for signed int 
-f85: typedef for signed int 
-f86: typedef for signed int 
-f87: typedef for signed int 
-f88: typedef for signed int 
-f89: typedef for signed int 
-main: C function
-      accepting unspecified arguments
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-        Declaration of f1: signed int 
-        Declaration of f2: signed int 
-        Declaration of f3: pointer to signed int 
-        Declaration of f4: pointer to pointer to signed int 
-        Declaration of f5: pointer to const pointer to signed int 
-        Declaration of f6: const pointer to const pointer to signed int 
-        Declaration of f7: pointer to signed int 
-        Declaration of f8: pointer to pointer to signed int 
-        Declaration of f9: pointer to const pointer to signed int 
-        Declaration of f10: const pointer to const pointer to signed int 
-        Declaration of f11: pointer to signed int 
-        Declaration of f12: pointer to pointer to signed int 
-        Declaration of f13: pointer to const pointer to signed int 
-        Declaration of f14: const pointer to const pointer to signed int 
-        Declaration of f15: open array of signed int 
-        Declaration of f16: array of signed int with dimension of constant expression 10 signed int 
-        Declaration of f17: open array of signed int 
-        Declaration of f18: array of signed int with dimension of constant expression 10 signed int 
-        Declaration of f19: open array of pointer to signed int 
-        Declaration of f20: array of pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f21: open array of pointer to pointer to signed int 
-        Declaration of f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f23: open array of pointer to const pointer to signed int 
-        Declaration of f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f25: open array of const pointer to const pointer to signed int 
-        Declaration of f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f27: open array of pointer to signed int 
-        Declaration of f28: array of pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f29: open array of pointer to pointer to signed int 
-        Declaration of f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f31: open array of pointer to const pointer to signed int 
-        Declaration of f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f33: open array of const pointer to const pointer to signed int 
-        Declaration of f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f35: open array of pointer to signed int 
-        Declaration of f36: array of pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f37: open array of pointer to pointer to signed int 
-        Declaration of f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f39: open array of pointer to const pointer to signed int 
-        Declaration of f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f41: open array of const pointer to const pointer to signed int 
-        Declaration of f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-        Declaration of f43: open array of array of signed int with dimension of constant expression 3 signed int 
-        Declaration of f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f45: open array of array of signed int with dimension of constant expression 3 signed int 
-        Declaration of f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f47: open array of array of signed int with dimension of constant expression 3 signed int 
-        Declaration of f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-        Declaration of f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-        Declaration of f65: function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f66: function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f67: function
-            with parameters
-              signed int 
-            returning 
-              pointer to signed int 
-
-        Declaration of f68: function
-            with parameters
-              signed int 
-            returning 
-              pointer to pointer to signed int 
-
-        Declaration of f69: function
-            with parameters
-              signed int 
-            returning 
-              pointer to const pointer to signed int 
-
-        Declaration of f70: function
-            with parameters
-              signed int 
-            returning 
-              const pointer to const pointer to signed int 
-
-        Declaration of f71: function
-            with parameters
-              signed int 
-            returning 
-              pointer to signed int 
-
-        Declaration of f72: function
-            with parameters
-              signed int 
-            returning 
-              pointer to pointer to signed int 
-
-        Declaration of f73: function
-            with parameters
-              signed int 
-            returning 
-              pointer to const pointer to signed int 
-
-        Declaration of f74: function
-            with parameters
-              signed int 
-            returning 
-              const pointer to const pointer to signed int 
-
-        Declaration of f75: pointer to function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f76: pointer to pointer to function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f77: pointer to const pointer to function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f78: const pointer to const pointer to function
-            with parameters
-              signed int 
-            returning 
-              signed int 
-
-        Declaration of f79: pointer to function
-            with parameters
-              signed int 
-            returning 
-              pointer to function
-                    accepting unspecified arguments
-                  returning 
-                    signed int 
-
-
-        Declaration of f80: const pointer to function
-            with parameters
-              signed int 
-            returning 
-              pointer to function
-                    accepting unspecified arguments
-                  returning 
-                    signed int 
-
-
-        Declaration of f81: const pointer to function
-            with parameters
-              signed int 
-            returning 
-              const pointer to function
-                    accepting unspecified arguments
-                  returning 
-                    signed int 
-
-
-
Index: c/Tests/SynTree/Expected/TypedefParamDeclarator.tst
===================================================================
--- src/Tests/SynTree/Expected/TypedefParamDeclarator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,382 +1,0 @@
-f0: typedef for signed int 
-f1: typedef for signed int 
-f2: typedef for signed int 
-f3: typedef for signed int 
-f4: typedef for signed int 
-f5: typedef for signed int 
-f6: typedef for signed int 
-f7: typedef for signed int 
-f8: typedef for signed int 
-f9: typedef for signed int 
-f10: typedef for signed int 
-f11: typedef for signed int 
-f12: typedef for signed int 
-f13: typedef for signed int 
-f14: typedef for signed int 
-f15: typedef for signed int 
-f16: typedef for signed int 
-f17: typedef for signed int 
-f18: typedef for signed int 
-f19: typedef for signed int 
-f20: typedef for signed int 
-f21: typedef for signed int 
-f22: typedef for signed int 
-f23: typedef for signed int 
-f24: typedef for signed int 
-f25: typedef for signed int 
-f26: typedef for signed int 
-f27: typedef for signed int 
-f28: typedef for signed int 
-f29: typedef for signed int 
-f30: typedef for signed int 
-f31: typedef for signed int 
-f32: typedef for signed int 
-f33: typedef for signed int 
-f34: typedef for signed int 
-f35: typedef for signed int 
-f36: typedef for signed int 
-f37: typedef for signed int 
-f38: typedef for signed int 
-f39: typedef for signed int 
-f40: typedef for signed int 
-f41: typedef for signed int 
-f42: typedef for signed int 
-f43: typedef for signed int 
-f44: typedef for signed int 
-f45: typedef for signed int 
-f46: typedef for signed int 
-f47: typedef for signed int 
-f48: typedef for signed int 
-f49: typedef for signed int 
-f50: typedef for signed int 
-f51: typedef for signed int 
-f52: typedef for signed int 
-f53: typedef for signed int 
-f54: typedef for signed int 
-f55: typedef for signed int 
-f56: typedef for signed int 
-f57: typedef for signed int 
-f58: typedef for signed int 
-f59: typedef for signed int 
-f60: typedef for signed int 
-f61: typedef for signed int 
-f62: typedef for signed int 
-f63: typedef for signed int 
-f64: typedef for signed int 
-f65: typedef for signed int 
-f66: typedef for signed int 
-f67: typedef for signed int 
-f68: typedef for signed int 
-f69: typedef for signed int 
-f70: typedef for signed int 
-f71: typedef for signed int 
-f72: typedef for signed int 
-f73: typedef for signed int 
-f74: typedef for signed int 
-f75: typedef for signed int 
-f76: typedef for signed int 
-f77: typedef for signed int 
-f78: typedef for signed int 
-f79: typedef for signed int 
-f80: typedef for signed int 
-f81: typedef for signed int 
-f82: typedef for signed int 
-f83: typedef for signed int 
-f84: typedef for signed int 
-f85: typedef for signed int 
-f86: typedef for signed int 
-f87: typedef for signed int 
-f88: typedef for signed int 
-f89: typedef for signed int 
-f90: typedef for signed int 
-f91: typedef for signed int 
-f92: typedef for signed int 
-f93: typedef for signed int 
-f94: typedef for signed int 
-f95: typedef for signed int 
-f96: typedef for signed int 
-f97: typedef for signed int 
-f98: typedef for signed int 
-f99: typedef for signed int 
-f100: typedef for signed int 
-f101: typedef for signed int 
-f102: typedef for signed int 
-f103: typedef for signed int 
-f104: typedef for signed int 
-f105: typedef for signed int 
-f106: typedef for signed int 
-f107: typedef for signed int 
-f108: typedef for signed int 
-f109: typedef for signed int 
-f110: typedef for signed int 
-f111: typedef for signed int 
-f112: typedef for signed int 
-f113: typedef for signed int 
-f114: typedef for signed int 
-f115: typedef for signed int 
-f116: typedef for signed int 
-f117: typedef for signed int 
-f118: typedef for signed int 
-f119: typedef for signed int 
-fred: function
-    with parameters
-      f1: signed int 
-      f3: pointer to signed int 
-      f4: pointer to pointer to signed int 
-      f5: pointer to const pointer to signed int 
-      f6: const pointer to const pointer to signed int 
-      f11: pointer to signed int 
-      f12: pointer to pointer to signed int 
-      f13: pointer to const pointer to signed int 
-      f14: const pointer to const pointer to signed int 
-      f15: open array of signed int 
-      f16: array of signed int with dimension of constant expression 10 signed int 
-      f19: open array of pointer to signed int 
-      f20: array of pointer to signed int with dimension of constant expression 10 signed int 
-      f21: open array of pointer to pointer to signed int 
-      f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-      f23: open array of pointer to const pointer to signed int 
-      f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-      f25: open array of const pointer to const pointer to signed int 
-      f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-      f35: open array of pointer to signed int 
-      f36: array of pointer to signed int with dimension of constant expression 10 signed int 
-      f37: open array of pointer to pointer to signed int 
-      f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-      f39: open array of pointer to const pointer to signed int 
-      f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-      f41: open array of const pointer to const pointer to signed int 
-      f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-      f43: open array of array of signed int with dimension of constant expression 3 signed int 
-      f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
-      f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
-      f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-      f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-      f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
-      f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
-      f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-      f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-      f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f65: function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f67: function
-          with parameters
-            signed int 
-          returning 
-            pointer to signed int 
-
-      f68: function
-          with parameters
-            signed int 
-          returning 
-            pointer to pointer to signed int 
-
-      f69: function
-          with parameters
-            signed int 
-          returning 
-            pointer to const pointer to signed int 
-
-      f70: function
-          with parameters
-            signed int 
-          returning 
-            const pointer to const pointer to signed int 
-
-      f75: pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f76: pointer to pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f77: pointer to const pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f78: const pointer to const pointer to function
-          with parameters
-            signed int 
-          returning 
-            signed int 
-
-      f79: pointer to function
-          with parameters
-            signed int 
-          returning 
-            pointer to function
-                  accepting unspecified arguments
-                returning 
-                  signed int 
-
-
-      f80: const pointer to function
-          with parameters
-            signed int 
-          returning 
-            pointer to function
-                  accepting unspecified arguments
-                returning 
-                  signed int 
-
-
-      f81: const pointer to function
-          with parameters
-            signed int 
-          returning 
-            const pointer to function
-                  accepting unspecified arguments
-                returning 
-                  signed int 
-
-
-      f82: const variable length array of signed int 
-      f83: const array of signed int with dimension of constant expression 3 signed int 
-      f84: static array of signed int with dimension of constant expression 3 signed int 
-      f85: const static array of signed int with dimension of constant expression 3 signed int 
-      function
-          with parameters
-            const variable length array of instance of type f86 (not function type) 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            const array of instance of type f87 (not function type) with dimension of constant expression 3 signed int 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            static array of instance of type f88 (not function type) with dimension of constant expression 3 signed int 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            const static array of instance of type f89 (not function type) with dimension of constant expression 3 signed int 
-          returning 
-            signed int 
-
-      f90: const variable length array of pointer to signed int 
-      f91: const array of pointer to signed int with dimension of constant expression 3 signed int 
-      f92: static array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
-      f93: const static array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-      f94: const static array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-      function
-          with parameters
-            const variable length array of instance of type f95 (not function type) 
-          returning 
-            pointer to signed int 
-
-      function
-          with parameters
-            const array of instance of type f96 (not function type) with dimension of constant expression 3 signed int 
-          returning 
-            pointer to signed int 
-
-      function
-          with parameters
-            static array of instance of type f97 (not function type) with dimension of constant expression 3 signed int 
-          returning 
-            pointer to pointer to signed int 
-
-      function
-          with parameters
-            const static array of instance of type f98 (not function type) with dimension of constant expression 3 signed int 
-          returning 
-            pointer to const pointer to signed int 
-
-      function
-          with parameters
-            const static array of instance of type f99 (not function type) with dimension of constant expression 3 signed int 
-          returning 
-            const pointer to const pointer to signed int 
-
-      f100: const variable length array of array of signed int with dimension of constant expression 3 signed int 
-      f101: const array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f102: static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f103: const static array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      function
-          with parameters
-            const variable length array of array of instance of type f104 (not function type) with dimension of constant expression 3 signed int 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            const array of array of instance of type f105 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            static array of array of instance of type f106 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-          returning 
-            signed int 
-
-      function
-          with parameters
-            const static array of array of instance of type f107 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-          returning 
-            signed int 
-
-      f108: const variable length array of array of pointer to signed int with dimension of constant expression 3 signed int 
-      f109: const array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f110: static array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f111: const static array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      f112: const static array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-      function
-          with parameters
-            const variable length array of array of instance of type f113 (not function type) with dimension of constant expression 3 signed int 
-          returning 
-            pointer to signed int 
-
-      function
-          with parameters
-            const array of array of instance of type f114 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-          returning 
-            pointer to signed int 
-
-      function
-          with parameters
-            static array of array of instance of type f115 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-          returning 
-            pointer to pointer to signed int 
-
-      function
-          with parameters
-            const static array of array of instance of type f116 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-          returning 
-            pointer to const pointer to signed int 
-
-      function
-          with parameters
-            const static array of array of instance of type f117 (not function type) with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-          returning 
-            const pointer to const pointer to signed int 
-
-    returning 
-      signed int 
-    with body 
-      CompoundStmt
-
Index: c/Tests/SynTree/Expected/VariableDeclarator.tst
===================================================================
--- src/Tests/SynTree/Expected/VariableDeclarator.tst	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,187 +1,0 @@
-f1: signed int 
-f2: signed int 
-f3: pointer to signed int 
-f4: pointer to pointer to signed int 
-f5: pointer to const pointer to signed int 
-f6: const pointer to const pointer to signed int 
-f7: pointer to signed int 
-f8: pointer to pointer to signed int 
-f9: pointer to const pointer to signed int 
-f10: const pointer to const pointer to signed int 
-f11: pointer to signed int 
-f12: pointer to pointer to signed int 
-f13: pointer to const pointer to signed int 
-f14: const pointer to const pointer to signed int 
-f15: open array of signed int 
-f16: array of signed int with dimension of constant expression 10 signed int 
-f17: open array of signed int 
-f18: array of signed int with dimension of constant expression 10 signed int 
-f19: open array of pointer to signed int 
-f20: array of pointer to signed int with dimension of constant expression 10 signed int 
-f21: open array of pointer to pointer to signed int 
-f22: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-f23: open array of pointer to const pointer to signed int 
-f24: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-f25: open array of const pointer to const pointer to signed int 
-f26: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-f27: open array of pointer to signed int 
-f28: array of pointer to signed int with dimension of constant expression 10 signed int 
-f29: open array of pointer to pointer to signed int 
-f30: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-f31: open array of pointer to const pointer to signed int 
-f32: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-f33: open array of const pointer to const pointer to signed int 
-f34: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-f35: open array of pointer to signed int 
-f36: array of pointer to signed int with dimension of constant expression 10 signed int 
-f37: open array of pointer to pointer to signed int 
-f38: array of pointer to pointer to signed int with dimension of constant expression 10 signed int 
-f39: open array of pointer to const pointer to signed int 
-f40: array of pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-f41: open array of const pointer to const pointer to signed int 
-f42: array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int 
-f43: open array of array of signed int with dimension of constant expression 3 signed int 
-f44: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f45: open array of array of signed int with dimension of constant expression 3 signed int 
-f46: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f47: open array of array of signed int with dimension of constant expression 3 signed int 
-f48: array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f49: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
-f50: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f51: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
-f52: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f53: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-f54: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f55: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-f56: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f57: open array of array of pointer to signed int with dimension of constant expression 3 signed int 
-f58: array of array of pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f59: open array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int 
-f60: array of array of pointer to pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f61: open array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-f62: array of array of pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f63: open array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int 
-f64: array of array of const pointer to const pointer to signed int with dimension of constant expression 3 signed int with dimension of constant expression 3 signed int 
-f65: function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f66: function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f67: function
-    with parameters
-      signed int 
-    returning 
-      pointer to signed int 
-
-f68: function
-    with parameters
-      signed int 
-    returning 
-      pointer to pointer to signed int 
-
-f69: function
-    with parameters
-      signed int 
-    returning 
-      pointer to const pointer to signed int 
-
-f70: function
-    with parameters
-      signed int 
-    returning 
-      const pointer to const pointer to signed int 
-
-f71: function
-    with parameters
-      signed int 
-    returning 
-      pointer to signed int 
-
-f72: function
-    with parameters
-      signed int 
-    returning 
-      pointer to pointer to signed int 
-
-f73: function
-    with parameters
-      signed int 
-    returning 
-      pointer to const pointer to signed int 
-
-f74: function
-    with parameters
-      signed int 
-    returning 
-      const pointer to const pointer to signed int 
-
-f75: pointer to function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f76: pointer to pointer to function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f77: pointer to const pointer to function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f78: const pointer to const pointer to function
-    with parameters
-      signed int 
-    returning 
-      signed int 
-
-f79: pointer to function
-    with parameters
-      signed int 
-    returning 
-      pointer to function
-            accepting unspecified arguments
-          returning 
-            signed int 
-
-
-f80: const pointer to function
-    with parameters
-      signed int 
-    returning 
-      pointer to function
-            accepting unspecified arguments
-          returning 
-            signed int 
-
-
-f81: const pointer to function
-    with parameters
-      signed int 
-    returning 
-      const pointer to function
-            accepting unspecified arguments
-          returning 
-            signed int 
-
-
-z: pointer to array of double with dimension of constant expression 20 signed int 
-w: array of pointer to char with dimension of constant expression 20 signed int 
-v3: pointer to open array of pointer to open array of pointer to function
-    with parameters
-      pointer to open array of pointer to open array of signed int 
-      pointer to open array of pointer to open array of signed int 
-    returning 
-      pointer to open array of pointer to open array of signed int 
-
Index: c/Tests/SynTree/Forall.c
===================================================================
--- src/Tests/SynTree/Forall.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,98 +1,0 @@
-int ?=?( int*, int );
-float ?=?( float*, float );
-int * ?=?( int **, int * );
-float * ?=?( float **, float * );
-char ?=?( char*, char );
-void (* ?=?( void (**)(void), void (*)(void) ))(void);
-
-void g1() {
-	forall( type T ) T f( T );
-	void f( int );
-	void h( void (*p)(void) );
-  
-	int x;
-	void (*y)(void);
-	char z;
-	float w;
-  
-	f( x );
-	f( y );
-	f( z );
-	f( w );
-	h( f( y ) );
-}
-
-void g2() {
-	forall( type T ) void f( T, T );
-	forall( type T, type U ) void f( T, U );
-  
-	int x;
-	float y;
-	int *z;
-	float *w;
-  
-	f( x, y );
-	f( z, w );
-	f( x, z );
-}
-
-typedef forall ( type T ) int (*f)( int );
-
-forall( type T )
-void swap( T left, T right ) {
-	T temp = left;
-	left = right;
-	right = temp;
-}
-
-context sumable( type T ) {
-	const T 0;
-	T ?+?(T, T);
-	T ?++(T);
-	[T] ?+=?(T,T);
-};
-
-type T1 | { const T1 0; T1 ?+?(T1, T1); T1 ?++(T1); [T1] ?+=?(T1,T1); },
-	T2(type P1, type P2 ),
-	T3 | sumable(T3);
-
-type T2(type P1, type P2) | sumable(T2(P1,P2)) = struct { P1 i; P2 j; };
-
-T2(int, int) w1;
-typedef T2(int, int) w2;
-w2 g2;
-type w3 = T2(int, int);
-w3 g3;
-
-forall( type T | sumable( T ) )
-T sum( int n, T a[] ) {
-	T total = 0;
-	int i;
-	for ( i = 0; i < n; i += 1 )
-		total = total + a[i];
-	return total;
-}
-
-forall( type T | { const T 0; T ?+?(T, T); T ?++(T); [T] ?+=?(T,T); } )
-T twice( T t ) {
-	return t + t;
-}
-
-forall( type T | { const T 0; int ?!=?(T, T); int ?<?(T, T); } )
-T min( T t1, T t2 ) {
-	return t1 < t2 ? t1 : t2;
-}
-
-int main() {
-	int x = 1, y = 2, a[10];
-	float f;
-
-	swap( x, y );
-	twice( x );
-	f = min( 4.0, 3.0 );
-	sum( 10, a );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/Functions.c
===================================================================
--- src/Tests/SynTree/Functions.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,167 +1,0 @@
-// ANSI function definitions
-
-void h(void) {}
-
-int f (
-	int (void),
-	int (int),
-	int ((void)),
-	int ((int)),
-	void g(void)
-	) {
-	(*g)();
-	g();
-	g = h;
-}
-
-int f1() {}
-int (f2()) {}
-int (*f3())() {}
-int *((f4())) {}
-int ((*f5()))() {}
-int *f6() {}
-int *(f7)() {}
-int **f8() {}
-int * const *(f9)() {}
-int (*f10())[] {}
-int (*f11())[][3] {}
-int ((*f12())[])[3] {}
-
-// "implicit int" type specifier (not ANSI)
-
-fII1( int i ) {}
-const fII2( int i ) {}
-extern fII3( int i ) {}
-extern const fII4( int i ) {}
-
-*fII5() {}
-const *fII6() {}
-const long *fII7() {}
-static const long *fII8() {}
-const static long *fII9() {}
-
-// K&R function definitions
-
-fO1( i ) int i; {}
-int fO2( i ) int i; {}
-const fO3( i ) int i; {}
-extern fO4( i ) int i; {}
-extern const fO5( i ) int i; {}
-
-// Cforall extensions
-
-[] f( );
-[int] f( );
-[] f(int);
-[int] f(int);
-[] f( ) {}
-[int] f( ) {}
-[] f(int) {}
-[int] f(int) {}
-
-[int x] f( );
-[] f(int x);
-[int x] f(int x);
-[int x] f( ) {}
-[] f(int x) {}
-[int x] f(int x) {}
-
-[int, int x] f( );
-[] f(int, int x);
-[int, int x] f(int, int x);
-[int, int x] f( ) {}
-[] f(int, int x) {}
-[int, int x] f(int, int x) {}
-
-[int, int x, int] f( );
-[] f(int, int x, int);
-[int, int x, int] f(int, int x, int);
-[int, int x, int] f( ) {}
-[] f(int, int x, int) {}
-[int, int x, int] f(int, int x, int) {}
-
-[int, int x, * int y] f( );
-[] f(int, int x, * int y);
-[int, int x, * int y] f(int, int x, * int y);
-[int, int x, * int y] f( ) {}
-[] f(int, int x, * int y) {}
-[int, int x, * int y] f(int, int x, * int y) {}
-
-[ int ] f11( int ), f12;  // => int f11( int ), f12( int );
-
-[int] f(
-	int ( int, int p ),
-	[int](int)
-	) {
-	int (*(*p)[][10])[][3];
-	* [][10] * [][3] int p;
-	* [] * [int](int) p;
-}
-
-static const int *f1() {}
-static [ const int ] f2() {}
-static inline [ const * int ] f3() {}
-static inline [ const [ * int, int ] ] f4() {}
-static [ const [ * int, const int ] ] f5() {}
-
-// unnamed parameter
-
-int f(
-	int (),
-
-	int *(),
-	int **(),
-	int * const *(),
-	int * const * const (),
-
-	int ([]),
-	int ([10]),
-
-	int *([]),
-	int *([10]),
-	int **([]),
-	int **([10]),
-	int * const *([]),
-	int * const *([10]),
-	int * const * const ([]),
-	int * const * const ([10])
-	);
-
-int f(
-	int (),
-
-	int *(),
-	int **(),
-	int * const *(),
-	int * const * const (),
-
-	int ([]),
-	int ([10]),
-
-	int *([]),
-	int *([10]),
-	int **([]),
-	int **([10]),
-	int * const *([]),
-	int * const *([10]),
-	int * const * const ([]),
-	int * const * const ([10])
-	) {
-}
-
-typedef int T;
-
-int f( T (*f), T t ) {
-	T (T);
-}
-
-// errors
-
-//int f()[] {}
-//int (f[])() {}
-//int f[]() {}
-//int ((*f15())())[] {}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/IdentFuncDeclarator.c
===================================================================
--- src/Tests/SynTree/IdentFuncDeclarator.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,109 +1,0 @@
-int main() {
-	//int f0[]();
-	//int (f0[])();
-	//int f0()[];
-	//int f0()();
-	//int (*f0)()();
-	//int ((*f0())())[];
-	
-	int f1;
-	int (f2);
-
-	int *f3;
-	int **f4;
-	int * const *f5;
-	int * const * const f6;
-
-	int *(f7);
-	int **(f8);
-	int * const *(f9);
-	int * const * const (f10);
-
-	int (*f11);
-	int (**f12);
-	int (* const *f13);
-	int (* const * const f14);
-
-	int f15[];
-	int f16[10];
-	int (f17[]);
-	int (f18[10]);
-
-	int *f19[];
-	int *f20[10];
-	int **f21[];
-	int **f22[10];
-	int * const *f23[];
-	int * const *f24[10];
-	int * const * const f25[];
-	int * const * const f26[10];
-
-	int *(f27[]);
-	int *(f28[10]);
-	int **(f29[]);
-	int **(f30[10]);
-	int * const *(f31[]);
-	int * const *(f32[10]);
-	int * const * const (f33[]);
-	int * const * const (f34[10]);
-
-	int (*f35[]);
-	int (*f36[10]);
-	int (**f37[]);
-	int (**f38[10]);
-	int (* const *f39[]);
-	int (* const *f40[10]);
-	int (* const * const f41[]);
-	int (* const * const f42[10]);
-
-	int f43[][3];
-	int f44[3][3];
-	int (f45[])[3];
-	int (f46[3])[3];
-	int ((f47[]))[3];
-	int ((f48[3]))[3];
-
-	int *f49[][3];
-	int *f50[3][3];
-	int **f51[][3];
-	int **f52[3][3];
-	int * const *f53[][3];
-	int * const *f54[3][3];
-	int * const * const f55[][3];
-	int * const * const f56[3][3];
-
-	int (*f57[][3]);
-	int (*f58[3][3]);
-	int (**f59[][3]);
-	int (**f60[3][3]);
-	int (* const *f61[][3]);
-	int (* const *f62[3][3]);
-	int (* const * const f63[][3]);
-	int (* const * const f64[3][3]);
-
-	int f65(int);
-	int (f66)(int);
-
-	int *f67(int);
-	int **f68(int);
-	int * const *f69(int);
-	int * const * const f70(int);
-
-	int *(f71)(int);
-	int **(f72)(int);
-	int * const *(f73)(int);
-	int * const * const (f74)(int);
-
-	int (*f75)(int);
-	int (**f76)(int);
-	int (* const *f77)(int);
-	int (* const * const f78)(int);
-
-	int (*(*f79)(int))();
-	int (*(* const f80)(int))();
-	int (* const(* const f81)(int))();
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/IdentFuncParamDeclarator.c
===================================================================
--- src/Tests/SynTree/IdentFuncParamDeclarator.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,154 +1,0 @@
-int fred(
-	//int f0[](),
-	//int (f0[])(),
-	//int f0()[],
-	//int f0()(),
-	//int (*f0)()(),
-	//int ((*f0())())[],
-	
-	int f1,
-	int (f2),
-
-	int *f3,
-	int **f4,
-	int * const *f5,
-	int * const * const f6,
-
-	int *(f7),
-	int **(f8),
-	int * const *(f9),
-	int * const * const (f10),
-
-	int (*f11),
-	int (**f12),
-	int (* const *f13),
-	int (* const * const f14),
-
-	int f15[],
-	int f16[10],
-	int (f17[]),
-	int (f18[10]),
-
-	int *f19[],
-	int *f20[10],
-	int **f21[],
-	int **f22[10],
-	int * const *f23[],
-	int * const *f24[10],
-	int * const * const f25[],
-	int * const * const f26[10],
-
-	int *(f27[]),
-	int *(f28[10]),
-	int **(f29[]),
-	int **(f30[10]),
-	int * const *(f31[]),
-	int * const *(f32[10]),
-	int * const * const (f33[]),
-	int * const * const (f34[10]),
-
-	int (*f35[]),
-	int (*f36[10]),
-	int (**f37[]),
-	int (**f38[10]),
-	int (* const *f39[]),
-	int (* const *f40[10]),
-	int (* const * const f41[]),
-	int (* const * const f42[10]),
-
-	int f43[][3],
-	int f44[3][3],
-	int (f45[])[3],
-	int (f46[3])[3],
-	int ((f47[]))[3],
-	int ((f48[3]))[3],
-
-	int *f49[][3],
-	int *f50[3][3],
-	int **f51[][3],
-	int **f52[3][3],
-	int * const *f53[][3],
-	int * const *f54[3][3],
-	int * const * const f55[][3],
-	int * const * const f56[3][3],
-
-	int (*f57[][3]),
-	int (*f58[3][3]),
-	int (**f59[][3]),
-	int (**f60[3][3]),
-	int (* const *f61[][3]),
-	int (* const *f62[3][3]),
-	int (* const * const f63[][3]),
-	int (* const * const f64[3][3]),
-
-	int f65(int),
-	int (f66)(int),
-
-	int *f67(int),
-	int **f68(int),
-	int * const *f69(int),
-	int * const * const f70(int),
-
-	int *(f71)(int),
-	int **(f72)(int),
-	int * const *(f73)(int),
-	int * const * const (f74)(int),
-
-	int (*f75)(int),
-	int (**f76)(int),
-	int (* const *f77)(int),
-	int (* const * const f78)(int),
-
-	int (*(*f79)(int))(),
-	int (*(* const f80)(int))(),
-	int (* const(* const f81)(int))(),
-
-	int f82[const *],
-	int f83[const 3],
-	int f84[static 3],
-	int f85[static const 3],
-
-	int (f86[const *]),
-	int (f87[const 3]),
-	int (f88[static 3]),
-	int (f89[static const 3]),
-
-	int *f90[const *],
-	int *f91[const 3],
-	int **f92[static 3],
-	int * const *f93[static const 3],
-	int * const * const f94[static const 3],
-
-	int *(f95[const *]),
-	int *(f96[const 3]),
-	int **(f97[static 3]),
-	int * const *(f98[static const 3]),
-	int * const * const (f99[static const 3]),
-
-	int f100[const *][3],
-	int f101[const 3][3],
-	int f102[static 3][3],
-	int f103[static const 3][3],
-
-	int (f104[const *][3]),
-	int (f105[const 3][3]),
-	int (f106[static 3][3]),
-	int (f107[static const 3][3]),
-
-	int *f108[const *][3],
-	int *f109[const 3][3],
-	int **f110[static 3][3],
-	int * const *f111[static const 3][3],
-	int * const * const f112[static const 3][3],
-
-	int *(f113[const *][3]),
-	int *(f114[const 3][3]),
-	int **(f115[static 3][3]),
-	int * const *(f116[static const 3][3]),
-	int * const * const (f117[static const 3][3])
-	) {
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/Initialization.c
===================================================================
--- src/Tests/SynTree/Initialization.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,41 +1,0 @@
-// Cforall extensions
-
-int * x11 = 0, x12 = 0;
-int * x21 = 0, x22 = 0;
-
-[20] int y1, y2 = { 1, 2, 3 };
-
-// designators
-
-struct {
-	[int] w;
-} a = { .w : [2] };
-
-struct { int a[3], b; } w [] = { [0].a : {1}, [0].b : 1, [1].a[0] : 2 };
-
-struct {
-	int f1, f2, f3;
-	struct { int g1, g2, g3; } f4[4];
-} v7 = {
-  .f1 : 4,
-  f2 : 3,
-  .f4[2] : {
-	  .g1 : 3,
-	  g3 : 0,
-	},
-  .f4[3].g3 : 7,
-};
-
-struct point { int x; int z; struct {int y1, y2, y3;} y; int w;};
-struct quintet { int v, w, x, y, z;};
-
-int main() {
-	struct point p1 = { x : 3 };
-	struct point p2 = { 3, 4 };
-	struct point p3 = { .[x,z] : 5, y : { .[y3,y1] : 6, 17 } };
-	struct point p4 = { w : 5, 4 };
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/Makefile
===================================================================
--- src/Tests/SynTree/Makefile	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,2 +1,0 @@
-all:
-	sh run-tests.sh
Index: c/Tests/SynTree/Scope.c
===================================================================
--- src/Tests/SynTree/Scope.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,66 +1,0 @@
-int x;
-typedef double y;
-typedef float t;
-y z;
-type u = struct { int a; double b; };
-int f( int y );
-y q;
-
-y w( y y, u v ) {
-	type x | { x t(u); };
-	u u = y;
-	x z = t(u);
-}
-
-y p;
-
-context has_u( type z ) {
-	z u(z);
-};
-
-forall( type t | has_u( t ) )
-y q( t the_t ) {
-	t y = u( the_t );
-}
-
-t f( y p ) {
-	int y;
-	typedef char x;
-	{
-		x y;
-		typedef x z;
-		{
-			z x;
-			typedef z y;
-			y z = x;
-		}
-		z x = y;
-	}
-	x q = y;
-}
-
-t g( void ) {
-	typedef char x;
-	try {
-		some_func();
-	} catch ( x x ) {
-		t y = x;
-	}
-	x z;
-}
-
-y q( i )												/* K&R style */
-	int i;
-{
-	switch ( i ) {
-		y q = i;
-	  case 0:
-		return q;
-	  default:
-		return i;
-	}
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/ScopeErrors.c
===================================================================
--- src/Tests/SynTree/ScopeErrors.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,25 +1,0 @@
-int thisIsAnError;
-int thisIsAnError;
-
-int thisIsNotAnError;
-float thisIsNotAnError;
-
-int thisIsAlsoNotAnError() {
-  int thisIsNotAnError;
-}
-
-int thisIsAlsoNotAnError( double x ) {
-}
-
-double thisIsStillNotAnError( double );
-double thisIsStillNotAnError( double );
-
-double butThisIsAnError( double ) {
-}
-
-double butThisIsAnError( double ) {
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/StructMember.c
===================================================================
--- src/Tests/SynTree/StructMember.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,44 +1,0 @@
-typedef int T;
-
-struct S {
-	int m1:3, m2:4;
-	int :2;
-	int :3, :4;
-	int m3;
-	int m4, m5, m6;
-	int *m7, *m8, *m9;
-	int (*m10)();
-	int *(*m11)(int);
-	T T;
-	T (T);
-
-// Cforall extensions
-
-	* int m12, m13;
-	* [ * int ] (int) m14;
-	int ;
-	int , , ;
-	int * , , ;
-	int *, *, *;
-	* int , , ;
-	int (*)();
-	int (**)( int );
-	T ;
-
-// errors
-
-//    void f(void);
-};
-
-struct S s;
-
-union U {
-	[5] int m1;
-	int m2[5];
-	* int m3;
-	int *m4;
-} u;
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/Tuple.c
===================================================================
--- src/Tests/SynTree/Tuple.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,70 +1,0 @@
-int f( int, int );
-int g( int, int, int );
-static [ int, int *, * int, int ] h( int a, int b, * int c, [] char d );
-
-struct inner {
-	int f2, f3;
-};
-
-struct outer {
-	int f1;
-	struct inner i;
-	double f4;
-} s, *sp;
-
-const volatile [ int, int ] t1;
-static const [ int, const int ] t2;
-const static [ int, const int ] t3;
-
-[ int rc ] printf( * char fmt, ... );
-int printf( char *fmt, ... );
-
-[ short x, unsigned y ] f1( int w ) {
-	[ y, x ] = [ x, y ] = [ w, 23 ];
-}
-
-[ [ int, char, long, int ] r ] g1() {
-	short x, p;
-	unsigned int y;
-	[ int, int ] z;
-
-	[ x, y, z ] = [ p, f( 17 ), 3 ];
-	[ x, y, z ] = ([short, unsigned int, [int, int]])([ p, f( 17 ), 3 ]);
-	r = [ x, y, z ];
-}
-
-[ int rc ] main( int argc, ** char argv ) {
-	int a, b, c, d;
-	struct outer t = { .[ f1,f4 ] : [ 1,7.0 ] };
-	f( [ 3,5 ] );
-	g( [ 3,5 ], 3 );
-	f( t1 );
-	g( t1, 3 );
-
-	[ , , , ];						/* empty tuple */
-	[ 3, 5 ];
-	[ a, b ] = 3;
-	[ a, b ] = [ 4.6 ];
-	[ a, b ] = [ c, d ] = [ 3, 5 ];
-	[ a, b, [ c ] ] = [ 2,[ a, b ] ];
-	[ a, b ] = 3 > 4 ? [ b, 6 ] : [ 7, 8 ];
-
-	t1 = [ a, b ];
-	t1 = t2 = [ a, b ];
-	[ a, b ] = [ c, d ] = d += c += 1;
-	[ a, b ] = [ c, d ] = t1;
-	[ a, b ] = t1 = [ c, d ];
-	[ a, b ] = t1 = t2 = [ c, d ];
-	t1 = [ 3, 4 ] = [ 3, 4 ] = t1 = [ 3, 4 ];
-
-	s.[ f1, i.[ f2, f3 ], f4 ] = [ 11, 12, 13, 3.14159 ];
-	s.[ f1, i.[ f2, f3 ], f4 ] = h( 3, 3, 0, "abc" );
-	[ a, , b, ] = h( 3, 3, 0, "abc" );			/* ignore some results */
-	sp->[ f4,f1 ] = sp->[ f1, f4 ];
-	printf( "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n", s.[ f4, i.[ f3, f2 ], f1 ] );
-	rc = 0;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/TypeGenerator.c
===================================================================
--- src/Tests/SynTree/TypeGenerator.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,29 +1,0 @@
-context addable(type T) {
-	T ?+?(T,T);
-};
-
-type List(type T | addable(T) ) | addable(T) = struct { T data; List(T) *next; } *;
-typedef List(int) ListOfIntegers;
-ListOfIntegers li;
-int f( List(int) ((*g))(int) );
-[int] h( * List(int) p ); // new declaration syntax
-
-struct(type T) S1;			// forward definition
-struct(type T) S1 { T i; };		// actual definition
-struct(int) S1 v1, *p;			// expansion and instantiation
-struct(type T)(int) S2 { T i; } v2;	// actual definition, expansion and instantiation
-struct(type T)(int) { T i; } v2;	// anonymous actual definition, expansion and instantiation
-
-struct( type T | addable(T) ) node { T data; struct(T) node *next; };
-type List(type T) = struct(T) node *;
-List(int) my_list;
-
-type Complex | addable(Complex);
-
-int main() {
-	(struct(int) node)my_list;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/Typedef.c
===================================================================
--- src/Tests/SynTree/Typedef.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,47 +1,0 @@
-typedef int T;
-
-void f( void ) {
-    int T( T );
-    T( 3 );
-}
-
-struct {
-    T (T);
-} fred = { 3 };
-
-typedef int (*a)(int, char);
-a b;
-
-int g(void) {
-    double a;
-}
-a c;
-
-typedef typeof(3) x, y;  // GCC
-
-x p;
-y q;
-
-int main() {
-    typedef typeof(3) z, p;
-    z w;
-    p x;
-}
-
-// new-style function definitions
-
-typedef [10] * int arrayOf10Pointers;
-arrayOf10Pointers array;
-typedef const * int constantPointer;
-typedef * [ int ]( [] int ) funcPtr;
-typedef [ int ] funcProto( []  int );
-typedef [ int, int ] tupleType;
-typedef * [ int, int ] tupleTypePtr;
-typedef * int a, b;
-typedef [ int ] f( * int ), g;
-typedef [ * [static 10] int ] t;
-typedef [ * [static 10] int x ] f();
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/TypedefDeclarator.c
===================================================================
--- src/Tests/SynTree/TypedefDeclarator.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,120 +1,0 @@
-typedef int
-	 f0,  f1,  f2,  f3,  f4,  f5,  f6,  f7,  f8,  f9,
-	f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
-	f20, f21, f22, f23, f24, f25, f26, f27, f28, f29,
-	f30, f31, f32, f33, f34, f35, f36, f37, f38, f39,
-	f40, f41, f42, f43, f44, f45, f46, f47, f48, f49,
-	f50, f51, f52, f53, f54, f55, f56, f57, f58, f59,
-	f60, f61, f62, f63, f64, f65, f66, f67, f68, f69,
-	f70, f71, f72, f73, f74, f75, f76, f77, f78, f79,
-	f80, f81, f82, f83, f84, f85, f86, f87, f88, f89;
-
-int main() {
-	//int f0[]();
-	//int (f0[])();
-	//int f0()[];
-	//int f0()();
-	//int (*f0)()();
-	//int ((*f0())())[];
-	
-	int f1;
-	int (f2);
-
-	int *f3;
-	int **f4;
-	int * const *f5;
-	int * const * const f6;
-
-	int *(f7);
-	int **(f8);
-	int * const *(f9);
-	int * const * const (f10);
-
-	int (*f11);
-	int (**f12);
-	int (* const *f13);
-	int (* const * const f14);
-
-	int f15[];
-	int f16[10];
-	int (f17[]);
-	int (f18[10]);
-
-	int *f19[];
-	int *f20[10];
-	int **f21[];
-	int **f22[10];
-	int * const *f23[];
-	int * const *f24[10];
-	int * const * const f25[];
-	int * const * const f26[10];
-
-	int *(f27[]);
-	int *(f28[10]);
-	int **(f29[]);
-	int **(f30[10]);
-	int * const *(f31[]);
-	int * const *(f32[10]);
-	int * const * const (f33[]);
-	int * const * const (f34[10]);
-
-	int (*f35[]);
-	int (*f36[10]);
-	int (**f37[]);
-	int (**f38[10]);
-	int (* const *f39[]);
-	int (* const *f40[10]);
-	int (* const * const f41[]);
-	int (* const * const f42[10]);
-
-	int f43[][3];
-	int f44[3][3];
-	int (f45[])[3];
-	int (f46[3])[3];
-	int ((f47[]))[3];
-	int ((f48[3]))[3];
-
-	int *f49[][3];
-	int *f50[3][3];
-	int **f51[][3];
-	int **f52[3][3];
-	int * const *f53[][3];
-	int * const *f54[3][3];
-	int * const * const f55[][3];
-	int * const * const f56[3][3];
-
-	int (*f57[][3]);
-	int (*f58[3][3]);
-	int (**f59[][3]);
-	int (**f60[3][3]);
-	int (* const *f61[][3]);
-	int (* const *f62[3][3]);
-	int (* const * const f63[][3]);
-	int (* const * const f64[3][3]);
-
-	int f65(int);
-	int (f66)(int);
-
-	int *f67(int);
-	int **f68(int);
-	int * const *f69(int);
-	int * const * const f70(int);
-
-	int *(f71)(int);
-	int **(f72)(int);
-	int * const *(f73)(int);
-	int * const * const (f74)(int);
-
-	int (*f75)(int);
-	int (**f76)(int);
-	int (* const *f77)(int);
-	int (* const * const f78)(int);
-
-	int (*(*f79)(int))();
-	int (*(* const f80)(int))();
-	int (* const(* const f81)(int))();
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/TypedefParamDeclarator.c
===================================================================
--- src/Tests/SynTree/TypedefParamDeclarator.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,154 +1,0 @@
-typedef int
-	 f0,   f1,   f2,   f3,   f4,   f5,   f6,   f7,   f8,   f9,
-	f10,  f11,  f12,  f13,  f14,  f15,  f16,  f17,  f18,  f19,
-	f20,  f21,  f22,  f23,  f24,  f25,  f26,  f27,  f28,  f29,
-	f30,  f31,  f32,  f33,  f34,  f35,  f36,  f37,  f38,  f39,
-	f40,  f41,  f42,  f43,  f44,  f45,  f46,  f47,  f48,  f49,
-	f50,  f51,  f52,  f53,  f54,  f55,  f56,  f57,  f58,  f59,
-	f60,  f61,  f62,  f63,  f64,  f65,  f66,  f67,  f68,  f69,
-	f70,  f71,  f72,  f73,  f74,  f75,  f76,  f77,  f78,  f79,
-	f80,  f81,  f82,  f83,  f84,  f85,  f86,  f87,  f88,  f89,
-	f90,  f91,  f92,  f93,  f94,  f95,  f96,  f97,  f98,  f99,
-	f100, f101, f102, f103, f104, f105, f106, f107, f108, f109,
-	f110, f111, f112, f113, f114, f115, f116, f117, f118, f119;
-
-int fred(
-/*
-	//int f0[](),
-	//int (f0[])(),
-	//int f0()[],
-	//int f0()(),
-	//int (*f0)()(),
-	//int ((*f0())())[],
-*/
-	int f1,
-
-	int *f3,
-	int **f4,
-	int * const *f5,
-	int * const * const f6,
-
-	int (*f11),
-	int (**f12),
-	int (* const *f13),
-	int (* const * const f14),
-
-	int f15[],
-	int f16[10],
-
-	int *f19[],
-	int *f20[10],
-	int **f21[],
-	int **f22[10],
-	int * const *f23[],
-	int * const *f24[10],
-	int * const * const f25[],
-	int * const * const f26[10],
-
-	int (*f35[]),
-	int (*f36[10]),
-	int (**f37[]),
-	int (**f38[10]),
-	int (* const *f39[]),
-	int (* const *f40[10]),
-	int (* const * const f41[]),
-	int (* const * const f42[10]),
-
-	int f43[][3],
-	int f44[3][3],
-/*
-	int (f45[])[3],
-	int (f46[3])[3],
-	int ((f47[]))[3],
-	int ((f48[3]))[3],
-*/
-	int *f49[][3],
-	int *f50[3][3],
-	int **f51[][3],
-	int **f52[3][3],
-	int * const *f53[][3],
-	int * const *f54[3][3],
-	int * const * const f55[][3],
-	int * const * const f56[3][3],
-
-	int (*f57[][3]),
-	int (*f58[3][3]),
-	int (**f59[][3]),
-	int (**f60[3][3]),
-	int (* const *f61[][3]),
-	int (* const *f62[3][3]),
-	int (* const * const f63[][3]),
-	int (* const * const f64[3][3]),
-
-	int f65(int),
-/*
-	int (f66)(int),
-*/
-	int *f67(int),
-	int **f68(int),
-	int * const *f69(int),
-	int * const * const f70(int),
-/*
-	int *(f71)(int),
-	int **(f72)(int),
-	int * const *(f73)(int),
-	int * const * const (f74)(int),
-*/
-	int (*f75)(int),
-	int (**f76)(int),
-	int (* const *f77)(int),
-	int (* const * const f78)(int),
-
-	int (*(*f79)(int))(),
-	int (*(* const f80)(int))(),
-	int (* const(* const f81)(int))(),
-
-	int f82[const *],
-	int f83[const 3],
-	int f84[static 3],
-	int f85[static const 3],
-
-	int (f86[const *]),
-	int (f87[const 3]),
-	int (f88[static 3]),
-	int (f89[static const 3]),
-
-	int *f90[const *],
-	int *f91[const 3],
-	int **f92[static 3],
-	int * const *f93[static const 3],
-	int * const * const f94[static const 3],
-
-	int *(f95[const *]),
-	int *(f96[const 3]),
-	int **(f97[static 3]),
-	int * const *(f98[static const 3]),
-	int * const * const (f99[static const 3]),
-
-	int f100[const *][3],
-	int f101[const 3][3],
-	int f102[static 3][3],
-	int f103[static const 3][3],
-
-	int (f104[const *][3]),
-	int (f105[const 3][3]),
-	int (f106[static 3][3]),
-	int (f107[static const 3][3]),
-
-	int *f108[const *][3],
-	int *f109[const 3][3],
-	int **f110[static 3][3],
-	int * const *f111[static const 3][3],
-	int * const * const f112[static const 3][3],
-
-	int *(f113[const *][3]),
-	int *(f114[const 3][3]),
-	int **(f115[static 3][3]),
-	int * const *(f116[static const 3][3]),
-	int * const * const (f117[static const 3][3])
-	) {
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/VariableDeclarator.c
===================================================================
--- src/Tests/SynTree/VariableDeclarator.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,162 +1,0 @@
-int f1;
-int (f2);
-
-int *f3;
-int **f4;
-int * const *f5;
-int * const * const f6;
-
-int *(f7);
-int **(f8);
-int * const *(f9);
-int * const * const (f10);
-
-int (*f11);
-int (**f12);
-int (* const *f13);
-int (* const * const f14);
-
-int f15[];
-int f16[10];
-int (f17[]);
-int (f18[10]);
-
-int *f19[];
-int *f20[10];
-int **f21[];
-int **f22[10];
-int * const *f23[];
-int * const *f24[10];
-int * const * const f25[];
-int * const * const f26[10];
-
-int *(f27[]);
-int *(f28[10]);
-int **(f29[]);
-int **(f30[10]);
-int * const *(f31[]);
-int * const *(f32[10]);
-int * const * const (f33[]);
-int * const * const (f34[10]);
-
-int (*f35)[];
-int (*f36)[10];
-int (**f37)[];
-int (**f38)[10];
-int (* const *f39)[];
-int (* const *f40)[10];
-int (* const * const f41)[];
-int (* const * const f42)[10];
-
-int f43[][3];
-int f44[3][3];
-int (f45[])[3];
-int (f46[3])[3];
-int ((f47[]))[3];
-int ((f48[3]))[3];
-
-int *f49[][3];
-int *f50[3][3];
-int **f51[][3];
-int **f52[3][3];
-int * const *f53[][3];
-int * const *f54[3][3];
-int * const * const f55[][3];
-int * const * const f56[3][3];
-
-int (*f57[][3]);
-int (*f58[3][3]);
-int (**f59[][3]);
-int (**f60[3][3]);
-int (* const *f61[][3]);
-int (* const *f62[3][3]);
-int (* const * const f63[][3]);
-int (* const * const f64[3][3]);
-
-int f65(int);
-int (f66)(int);
-
-int *f67(int);
-int **f68(int);
-int * const *f69(int);
-int * const * const f70(int);
-
-int *(f71)(int);
-int **(f72)(int);
-int * const *(f73)(int);
-
-int * const * const (f74)(int);
-
-int (*f75)(int);
-int (**f76)(int);
-int (* const *f77)(int);
-int (* const * const f78)(int);
-
-int (*(*f79)(int))();
-int (*(* const f80)(int))();
-int (* const(* const f81)(int))();
-
-// errors
-
-//int fe0[]();				// array of functions
-//int (fe1[])();				// array of functions
-//int fe2()[];				// returning an array
-//int fe3()();				// returning a function
-//int (*fe4)()();				// returning a function
-//int ((*fe5())())[];			// returning an array
-
-// Cforall extensions
-
-* int cf3;
-* * int cf4;
-* const * int cf5;
-const * const * int cf6;
-
-[] int cf15;
-[10] int cf16;
-
-[] * int cf19;
-[10] * int cf20;
-int **cf21[];
-[10] * * int cf22;
-[] * const * int cf23;
-[10] * const * int cf24;
-[] const * const * int cf25;
-[10] const * const * int cf26;
-
-* [] int cf35;
-* [10] int cf36;
-* * [] int cf37;
-* * [10] int cf38;
-* const * [] int cf39;
-* const * [10] int cf40;
-const * const * [] int cf41;
-const * const * [10] int cf42;
-
-[][3] int cf43;
-[3][3] int cf44;
-
-[][3] * int cf49;
-[3][3] * int cf50;
-[][3] * * int cf51;
-[3][3] * * int cf52;
-[][3] const * int cf53;
-[3][3] * const * int cf54;
-[][3] const * const * int cf55;
-[3][3] const * const * int cf56;
-
-[int] cf65(int);
-[int] cf66(int);
-
-[* int] cf67(int);
-[* * int] cf68(int);
-[const * * int] cf69(int);
-[const * const * int] cf70(int);
-
-// function pointer
-
-*[]*[]* [ *[]*[] int ]( *[]*[] int, *[]*[] int ) v3;
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/SynTree/make-rules
===================================================================
--- src/Tests/SynTree/make-rules	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,20 +1,0 @@
-CFA = ../../cfa-cpp
-
-EXPECTED := ${wildcard ${EXPECTDIR}/*.tst}
-TESTS := ${EXPECTED:${EXPECTDIR}/%=${OUTPUTDIR}/%}
-TEST_IN := ${TESTS:.tst=.c}
-
-.SILENT :
-
-${OUTPUTDIR}/%.tst : %.c ${CFA}
-	-${CFA} ${CFAOPT} < $< > $@ 2>&1
-
-${OUTPUTDIR}/report : ${TESTS} ${EXPECTED}
-	rm -f $@
-	@for i in ${TESTS}; do \
-	     echo "---"`basename $$i`"---" | tee -a $@; \
-	     diff -B -w ${EXPECTDIR}/`basename $$i` $$i | tee -a $@; \
-	done
-
-clean :
-	rm -rf ${OUTPUTDIR}
Index: c/Tests/SynTree/run-tests.sh
===================================================================
--- src/Tests/SynTree/run-tests.sh	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,10 +1,0 @@
-#!/bin/sh -
-
-dotest() {
-  mkdir -p Output$1
-  OUTPUTDIR=Output$1 EXPECTDIR=Expected$1 CFAOPT=$2 make -f make-rules $3
-}
-
-dotest "" -na "$*"
-dotest -SymTab -ns "$*"
-#dotest -Validate -v "$*"
Index: c/Tests/Syntax/AsmName.c
===================================================================
--- src/Tests/Syntax/AsmName.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,14 +1,0 @@
-extern int x asm( "xx" );
-
-int fred( int x ) {
-    static int y asm( "yy" );
-
-// Cforall extensions
-
-    static * int z asm( "zz" );
-}
-
-// errors
-
-//typedef int t asm( "tt" );
-//int mary( int p asm( "pp" ) ) {}
Index: c/Tests/Syntax/Attributes.c
===================================================================
--- src/Tests/Syntax/Attributes.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,42 +1,0 @@
-int @max = 3;
-
-int main() {
-    int x;
-    type @type(type t);		// compiler intrinsic
-    type @widest(type t);
-    @type(x) *y;		// gcc: typeof(x) *y;
-    const @widest(double) *w;	// gcc: const typeof(x) *w;
-    * @type(3 + 4) z;		// cfa declaration syntax
-    y = @max;		
-    z = @max(x) + @size(int);
-    y = @min(3 + 4);
-    if ( @const(x) ) { }
-    if ( @volatile(y) ) { }
-    if ( @extern(y) ) { }
-    if ( @static(y) ) { }
-    @max;
-}
-
-int @foo(int) {
-    return 7;
-}
-
-int @voon;
-double @voon;
-
-int @bort(int);
-int @bort(double);
-
-void g( int );
-
-void f() {
-	float x;
-	double x;
-	@bort(x);
-	@bort(int);
-	g( @voon );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/Syntax/CharStringConstants.c
===================================================================
--- src/Tests/Syntax/CharStringConstants.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,87 +1,0 @@
-int main() {
-// character constants
-
-    ' ';
-    'a';
-    '"';
-    '_';
-
-    '\a';				// simple escape
-    '\b';
-    '\e';				// GCC
-    '\f';
-    '\n';
-    '\r';
-    '\t';
-    '\v';
-    '\'';
-    '\"';
-    '\?';
-    '\\';
-
-    '\0';				// octal escape
-
-    '\377';
-
-    '\xf';				// hex escape
-    '\xff';
-
-// warnings/errors
-
-    '';					// empty character
-    'aa';				// multi-character
-    'a\na';				// multi-character, embedded escape
-    'a\0a';
-    '\xfff';				// hex escape out of range
-    '_\377_';				// multi-character
-    '_\xff_';
-    '\xffff';				// hex escape out of range
-    'a\xff34w';
-    '\xf_f';				// multi-character
-    '\xff_ff';
-
-// string constants
-
-    " ";
-    "a";
-    "'";
-    '_';
-
-    "\a";				// simple escape
-    "\b";
-    "\e";				// GCC
-    "\f";
-    "\n";
-    "\r";
-    "\t";
-    "\v";
-    "\'";
-    "\"";
-    "\?";
-    "\\";
-
-    "\0";				// octal escape
-    "\377";
-
-    "\xf";				// hex escape
-    "\xff";
-
-    "";
-    "aa";
-    "a\na";
-    "a\0a";
-    "_\377_";
-    "_\xff_";
-    "\xf_f";
-
-// warnings/errors
-
-    "\xff_ff";
-    "\xfff";				// hex escape out of range
-    "a\xff34w";
-    "\xffff";
-}
-
-// Local Variables: //
-// compile-command: "../../../bin/cfa -std=c99 CharStringConstants.c" //
-// End: //
Index: c/Tests/Syntax/CommentMisc.c
===================================================================
--- src/Tests/Syntax/CommentMisc.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,44 +1,0 @@
-/* single line */
-// single line
-
-// single line containing */
-// single line containing /*
-// single line containing /* */
-
-/* 1st */ int i;
-int i; /* 2nd */
-/* 1st */ int i; /* 2nd */
-/* 1st */ /* 2nd */
-
-/* 1st
-   2nd */ int i;
-
-/*
-*/
-
-/*
-
-*/
-
-/*
-  1st
-*/
-
-/*
-  1st
-  2nd
-*/
-
-// ignore preprocessor directives
-
-#line 2
- #
- #include <fred>
-	#define mary abc
-
-// alternative ANSI99 brackets
-
-int main() <%
-    int x<:10:>;
-%>
-
Index: c/Tests/Syntax/Exception.c
===================================================================
--- src/Tests/Syntax/Exception.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,24 +1,0 @@
-int fred() {
-    int x;
-    throw 3;
-    throw x = 5;
-
-    try {
-    } catch( int i ) {}
-
-    try {
-	x/4;
-    } catch( int) {
-    } catch( int x ) {
-    } catch( struct { int i; } ) {
-    } catch( struct { int i; } x ) {
-    } catch( struct { int i; } *x ) {
-
-// Cforall extensions
-
-    } catch( * struct { int i; } ) {
-    } catch( * struct { int i; } x ) {
-    } catch( ... ) {
-//    } finally {
-    } // try
-}
Index: c/Tests/Syntax/Expression.c
===================================================================
--- src/Tests/Syntax/Expression.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,67 +1,0 @@
-int fred() {
-    struct s { int i; } *p;
-    int i;
-
-    // order of evaluation (GCC is different)
-/*
-    i = sizeof( (int) {3} );
-    i = sizeof (int) {3};
-*/
-    // operators
-
-    ! i;
-    ~i;
-    +i;
-    -i;
-    *p;
-    ++p;
-    --p;
-    p++;
-    p--;
-
-    i+i;
-    i-i;
-    i*i;
-
-    i/i;
-    i%i;
-    i^i;
-    i&i;
-    i|i;
-    i<i;
-    i>i;
-    i=i;
-
-    i==i;
-    i!=i;
-    i<<i;
-    i>>i;
-    i<=i;
-    i>=i;
-    i&&i;
-    i||i;
-    p->i;
-    i+=i;
-    i-=i;
-    i*=i;
-    i/=i;
-    i%=i;
-    i&=i;
-    i|=i;
-    i^=i;
-    i<<=i;
-    i>>=i;
-
-    i?i:i;
-
-    // cast
-/*
-    double d;
-    int *ip;
-    (int *) i;
-    (* int) i;
-    ([char, int *])[d, d];
-    [i,ip,ip] = ([int, * int, int *])[1,(void *)2,(void *)3];
-    [i,ip,ip] = ([int, * int, int *])([1,(void *)2,(void *)3]);
-*/
-}
Index: c/Tests/Syntax/GccExtensions.c
===================================================================
--- src/Tests/Syntax/GccExtensions.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,48 +1,0 @@
-int fred() {
-    asm( "nop" );
-    __asm( "nop" );
-    __asm__( "nop" );
-
-    __complex__ c1;
-    _Complex c2;
-
-    const int i1;
-    __const int i2;
-    __const__ int i3;
-
-    __extension__ const int ex;
-
-    __inline int f1();
-    __inline__ int f2();
-
-    __signed s1;
-    __signed s2;
-
-    __typeof(s1) t1;
-    __typeof__(s1) t2;
-
-    __volatile int v1;
-    __volatile__ int v2;
-
-    __attribute__(()) int a1;
-    const __attribute(()) int a2;
-    const static __attribute(()) int a3;
-    const static int __attribute(()) a4;
-    const static int a5 __attribute(());
-    const static int a6, __attribute(()) a7;
-
-    int * __attribute(()) p1;
-    int (* __attribute(()) p2);
-//    int (__attribute(()) (p3));
-//    int ( __attribute(()) (* __attribute(()) p4));
-
-    struct __attribute(()) s1;
-    struct __attribute(()) s2 { int i; };
-    struct __attribute(()) s3 { int i; } x1, __attribute(()) y1;
-    struct __attribute(()) s4 { int i; } x2, y2 __attribute(());
-
-    int m1 [10] __attribute(());
-    int m2 [10][10] __attribute(());
-    int __attribute(()) m3 [10][10];
-//    int ( __attribute(()) m4 [10] )[10];
-}
Index: c/Tests/Syntax/LabelledExit.c
===================================================================
--- src/Tests/Syntax/LabelledExit.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,139 +1,0 @@
-int main() {
-    int i;
-    int x, y;
-
-    x = 0; y = 0;
-
-// block, labelled exits
-
-  Block: {
-	if ( x == y ) {
-	    for ( ; i < y; ) {
-		y += 1;
-		if ( y < 10 ) break Block;
-	    }
-	}
-    }
-
-// loops, labelled exits
-
-  w1: while ( y == 10 );
-
-  w2: while ( x < 10 ) {
-      while (y < 5 ) {
-	  if ( y == 3 ) break w2;
-      }
-      x += 1;
-  }
-
-  A: for ( i = 0; i < 10; i += 1 ) {
-    B: for ( i = 0; i < 10; i += 1 ) {
-      C: for ( i = 0; i < 10; i += 1 ) {
-	  goto A;
-	  goto B;
-	  goto C;
-	  continue A;
-	  continue B;
-	  continue C;
-	  continue;
-	  break A;
-	  break B;
-	  break C;
-	  break;
-      }
-    }
-  }
-
-  D: for ( ;; ) {
-      break D;
-      continue D;
-  }
-
-    Z : i += 1;
-    goto Z;
-  X: Y: for ( ;; ) {
-      i += 1;
-      if ( i > 5 ) continue X;
-      if ( i < 5 ) break X;
-      if ( i < 5 ) break Y;
-      break;
-  }
-  XX: for ( ;; ) {
-    YY: for ( ;; ) {
-      ZZ: for ( ;; ) {
-	  i += 1;
-	  if ( i > 5 ) continue XX;
-	  if ( i < 5 ) continue YY;
-	  if ( i < 5 ) continue ZZ;
-	  if ( i > 5 ) break XX;
-	  if ( i < 5 ) break YY;
-	  if ( i < 5 ) break ZZ;
-	  break;
-      }
-    }
-  }
-
-    for ( ;; ) ;
-    for ( int i = 0 ;; ) ;
-    for (  ; i < 0; ) ;
-    for (  ; ; i += 1 ) ;
-  L0:  L1:  L2:  L3:  L4:  L5:  L6:  L7:  L8:  L9:
-  L10: L11: L12: L13: L14: L15: L16: L17: L18: L19:
-  L20: L21: L22: L23: L24: L25: L26: L27: L28: L29:
-  L31: L32: L33: L34:
-    for ( ;; ) {
-	break L0;
-    }
-
-// switch/choose, labelled exits
-
-  Switch: switch ( i ) {
-    default:
-      i += 1;
-    case 0:
-      i += 1;
-      break Switch;
-    case 1:
-      switch ( i ) {
-	case 0:
-	  break Switch;
-	default:
-	  break;
-      }
-  }
-
-  Choose: choose ( i ) {
-    default:
-      i += 1;
-    case 0:
-      i += 1;
-      break Choose;
-    case 1:
-      choose ( i ) {
-	case 0:
-	  break;
-	default:
-	  break Choose;
-      }
-      fallthru;
-    case 2:
-      i += 1;
-  }
-#if 0
-// computed goto
-
-    {
-	static void *array[] = { &&foo, &&bar, &&hack };
-
-      foo: bar: hack:
-	goto *array[i];
-    }
-#endif
-#if 0
-  Q: if ( i > 5 ) {
-      i += 1;
-      break Q;
-  } else
-      i += 1;
-#endif
-}
Index: c/Tests/Syntax/Makefile
===================================================================
--- src/Tests/Syntax/Makefile	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,22 +1,0 @@
-CFA = ../../cfa-cpp
-
-TESTS = ${shell ls *.c}
-TEST_OUT = $(TESTS:.c=.tst)
-
-%.tst:%.c $(CFA)
-	$(CFA) -nd < $< > $@ 2>&1
-
-tests: $(TEST_OUT)
-
-clean:
-	rm -rf $(TEST_OUT)
-
-force: clean tests
-
-all: $(TESTS)
-	@for i in $(TESTS); do     \
-	  echo -n $$i "... " ;     \
-	  $(CFA) -d < $$i > $$i.log;  \
-	done
-
-
Index: c/Tests/Syntax/NamedParmArg.c
===================================================================
--- src/Tests/Syntax/NamedParmArg.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,14 +1,0 @@
-int f1( int i = 3, int *j = 0 ) {}  /* ANSI */
-[int, int ] f2( int i = 3, * int j = 0 ) {}  /* CFA */
-
-int main() {
-    f1();		/* identical calls */
-    f1( 3 );
-    f1( 3, );
-    f1( 3, 0 );
-    f1( 3, j : 0 );
-    f1( j : 0, 3 );
-    f1( i : 3, j : 0 );
-    f1( j : 0, i : 3 );
-    f1( [j, i] : f2() );
-}
Index: c/Tests/Syntax/NumericConstants.c
===================================================================
--- src/Tests/Syntax/NumericConstants.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,54 +1,0 @@
-int main() {
-    1;							/* decimal */
-    2_1;
-    2_147_483_647;
-    37LL;
-    45ull;
-    89llu;
-    99LLu;
-    56_lu;
-    88_LLu;
-
-//    0;							/* octal */
-    0u;
-    0_3_77;
-    0_377_ul;
-
-    0x1;						/* hexadecimal */
-    0x1u;
-    0xabL;
-    0x_80000000;
-    0x_fff;
-    0x_ef3d_aa5c;
-    0x_3LL;
-
-    3.;							/* integral real */
-    3_100.;
-    1_000_000.;
-
-    3.1;						/* integral/fractional real */
-    3.141_592_654L;
-    123_456.123_456;
-
-    3E1;						/* integral/exponent real */
-    3_e1f;
-    3_E1_1_F;
-    3_E_11;
-    3_e_+11;
-    3_E_-11;
-
-    3.0E1;						/* integral/fractional/exponent real */
-    3.0_E1L;
-    3.0_e1_1;
-    3.0_E_11_l;
-    3.0_e_+11l;
-    3.0_E_-11;
-    123_456.123_456E-16;
-
-    0x_ff.ffp0;						/* hex real */
-    0x_1.ffff_ffff_p_128_l;
-}
-
-// Local Variables: //
-// compile-command: "../../../bin/cfa -std=c99 NumericConstants.c" //
-// End: //
Index: c/Tests/Syntax/Subrange.c
===================================================================
--- src/Tests/Syntax/Subrange.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,63 +1,0 @@
-// A small context defining the notion of an ordered type.  (The standard
-// library should probably contain a context for this purpose.)
-context ordered(type T) {
-    int ?<?(T, T), ?<=?(T, T);
-};
-
-// A subrange type resembling an Ada subtype with a base type and a range
-// constraint.
-type subrange(type base_t | ordered(base_t), base_t low = 0, base_t high = 8) = base_t;
-
-// Note that subrange() can be applied to floating-point and pointer types, not
-// just integral types.
-//   This requires a "type generator" extension to Cforall.  Type generators
-// must accept type and non-type parameters, which is beyond what we discussed
-// previously.  Type parameters must be usable in the declaration of
-// subsequent parameters: parameter T is used to declare parameters "low"
-// and "high".
-
-// Example usage:
-subrange(unsigned, 1, 31) day_of_month;
-subrange(char, 'a', 'z')  lcase;
-subrange(int, 0, (rand() & 0xF) ) foo;
-
-// What sorts of expressions can be used as arguments of type generators?  Is
-// "subrange(int, 0, rand() & 0xF)" legal?  Probably.  The nearest C equivalent
-// to the "low" and "high" arguments is the array size in a variable-length
-// array declaration, and C allows assignment expressions there.
-
-// Convenient access to subrange bounds, for instance for iteration:
-forall (type T, T low, T high)
-T lbound( subrange(T, low, high) v) {
-    return low;
-}
-
-forall (type T, T low, T high)
-T hbound( subrange(T, low, high) v) {
-    return high;
-}
-
-// Example usage:
-unsigned lday = lbound(day_of_month);
-
-// Assignment from the base type, with bounds checking.  I'll ignore the issue
-// of exception handling here.  Inlining allows the compiler to eliminate
-// bounds checks.
-forall (type T | ordered(T), T low, T high)
-inline subrange(T, low, high) ?=?(subrange(T, low, high)* target, T source) {
-    if (low <= source && source <= high) *((T*)target) = source;
-    else abort();
-    return target;
-}
-
-// Assignment between subranges with a common base type.  The bounds check
-// compares range bounds so that the compiler can optimize checks away when the
-// ranges are known to overlap.
-forall (type T | ordered(T), T t_low, T t_high, T s_low, T s_high)
-inline subrange(T, t_low, t_high) ?=?(subrange(T, t_low, t_high)* target,
-				      subrange(T, s_low, s_high) source) {
-    if ( (t_low <= s_low || t_low <= source)
-	 && (s_high <= t_high || source <= t_high) ) *((T*)target) = source;
-    else abort();
-    return target;
-}
Index: c/Tests/Syntax/Switch.c
===================================================================
--- src/Tests/Syntax/Switch.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,42 +1,0 @@
-int fred() {
-    int i;
-    switch ( i ) case 3 : i = 1;
-    switch ( i ) default : i = 1;
-    switch ( 3 )
-      default:
-      case 2:
-      case 3:
-	3;
-
-    switch ( i ) {
-    }
-
-    switch ( i ) {
-	int i;
-      case 8~10:
-      default:
-	i = 3;
-      case 3:
-      case 'A' ... 'Z':
-      case 5 ... 6:
-      case 2, 4:
-	i = 3;
-	break;
-    }
-
-    choose ( i ) case 3 : i = 1;
-    choose ( i ) default : i = 1;
-    choose ( i ) {
-	int i;
-      case 3:
-      case 'A' ... 'Z':
-      case 5 ... 6:
-      case 2, 4, 7:
-	i = 3;
-	fallthru;
-      default:
-	i = 3;
-      case 8~10:
-	fallthru
-    }
-}
Index: c/Tests/Syntax/Typeof.c
===================================================================
--- src/Tests/Syntax/Typeof.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,10 +1,0 @@
-int main() {
-    int *v1;
-    typeof(v1) v2;
-    typeof(*v1) v3[4];
-    char *v4[4];
-    typeof(typeof(char *)[4]) v5;
-    typeof (int *) v6;
-    typeof( int ( int, int p ) ) *v7;
-    typeof( [int] ( int, int p ) ) *v8;
-}
Index: src/Tests/Tuple.c
===================================================================
--- src/Tests/Tuple.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Tuple.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,70 @@
+int f( int, int );
+int g( int, int, int );
+static [ int, int *, * int, int ] h( int a, int b, * int c, [] char d );
+
+struct inner {
+	int f2, f3;
+};
+
+struct outer {
+	int f1;
+	struct inner i;
+	double f4;
+} s, *sp;
+
+const volatile [ int, int ] t1;
+static const [ int, const int ] t2;
+const static [ int, const int ] t3;
+
+[ int rc ] printf( * char fmt, ... );
+int printf( char *fmt, ... );
+
+[ short x, unsigned y ] f1( int w ) {
+	[ y, x ] = [ x, y ] = [ w, 23 ];
+}
+
+[ [ int, char, long, int ] r ] g1() {
+	short x, p;
+	unsigned int y;
+	[ int, int ] z;
+
+	[ x, y, z ] = [ p, f( 17 ), 3 ];
+	[ x, y, z ] = ([short, unsigned int, [int, int]])([ p, f( 17 ), 3 ]);
+	r = [ x, y, z ];
+}
+
+[ int rc ] main( int argc, ** char argv ) {
+	int a, b, c, d;
+	struct outer t = { .[ f1,f4 ] : [ 1,7.0 ] };
+	f( [ 3,5 ] );
+	g( [ 3,5 ], 3 );
+	f( t1 );
+	g( t1, 3 );
+
+	[ , , , ];						/* empty tuple */
+	[ 3, 5 ];
+	[ a, b ] = 3;
+	[ a, b ] = [ 4.6 ];
+	[ a, b ] = [ c, d ] = [ 3, 5 ];
+	[ a, b, [ c ] ] = [ 2,[ a, b ] ];
+	[ a, b ] = 3 > 4 ? [ b, 6 ] : [ 7, 8 ];
+
+	t1 = [ a, b ];
+	t1 = t2 = [ a, b ];
+	[ a, b ] = [ c, d ] = d += c += 1;
+	[ a, b ] = [ c, d ] = t1;
+	[ a, b ] = t1 = [ c, d ];
+	[ a, b ] = t1 = t2 = [ c, d ];
+	t1 = [ 3, 4 ] = [ 3, 4 ] = t1 = [ 3, 4 ];
+
+	s.[ f1, i.[ f2, f3 ], f4 ] = [ 11, 12, 13, 3.14159 ];
+	s.[ f1, i.[ f2, f3 ], f4 ] = h( 3, 3, 0, "abc" );
+	[ a, , b, ] = h( 3, 3, 0, "abc" );			/* ignore some results */
+	sp->[ f4,f1 ] = sp->[ f1, f4 ];
+	printf( "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n", s.[ f4, i.[ f3, f2 ], f1 ] );
+	rc = 0;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: c/Tests/TupleAssign/Initialization2.c
===================================================================
--- src/Tests/TupleAssign/Initialization2.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,15 +1,0 @@
-int a = 3;
-struct { int x; int y; } z = { 3, 7 };      /* OK */
-struct { int x; int y; } z1 = { .[x,y]:3 }; /* OK */
-struct { int x; int y; } z2 = { y:3, x:4 }; /* OK */
-struct { int x; struct { int y1; int y2; } y; } z3 = { x:3, y:{y1:4, y2:5} };  /* OK */
-struct { int x; struct { int y1; int y2; } y; } z3 = { y:{y2:9, y1:8}, x:7 };  /* OK */
-struct { int x; struct { int y1; int y2; } y; } z3 = { x:7, {y2:9, y1:8} };  /* OK */
-struct { int x; struct { int y1; int y2; } y; } z3 = { 3, {4, 5} };   /* OK */
-//struct { int x; struct { int y1; int y2; } } z3 = {4, {5,6}};
-//struct { int x; struct { int y1; int y2; } y; } z4 = { y:{4,5}, a:3 };
-//struct { int x; struct { int y1; int y2; } y; } z5 = { a:3, {4,5}};
-//int x[20] = { [10]: 4 };
-struct t { int a, b; };
-struct t x = { b:4, a:3 };
-struct { int x; int y; } z6= {5,6,4};  /* (should be an) error */
Index: src/Tests/TypeGenerator.c
===================================================================
--- src/Tests/TypeGenerator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/TypeGenerator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,31 @@
+context addable( type T ) {
+	T ?+?( T,T );
+	T ?=?( T*, T);
+};
+
+type List1( type T | addable( T ) ) = struct { T data; List1( T ) *next; } *;
+typedef List1( int ) ListOfIntegers;
+//List1( int ) li;
+ListOfIntegers li;
+int f( List1( int ) ( (*g ))( int ) );
+[int] h( * List1( int ) p );							// new declaration syntax
+
+struct( type T ) S1;									// forward definition
+struct( type T ) S1 { T i; };							// actual definition
+struct( int ) S1 v1, *p;								// expansion and instantiation
+struct( type T )( int ) S2 { T i; } v2;					// actual definition, expansion and instantiation
+struct( type T )( int ) { T i; } v2;					// anonymous actual definition, expansion and instantiation
+
+struct( type T | addable( T ) ) node { T data; struct( T ) node *next; };
+type List( type T ) = struct( T ) node *;
+List( int ) my_list;
+
+type Complex | addable( Complex );
+
+int main() {
+	(struct( int ) node)my_list;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Typedef.c
===================================================================
--- src/Tests/Typedef.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Typedef.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,47 @@
+typedef int T;
+
+void f( void ) {
+    int T( T );
+    T( 3 );
+}
+
+struct {
+    T (T);
+} fred = { 3 };
+
+typedef int (*a)(int, char);
+a b;
+
+int g(void) {
+    double a;
+}
+a c;
+
+typedef typeof(3) x, y;  // GCC
+
+x p;
+y q;
+
+int main() {
+    typedef typeof(3) z, p;
+    z w;
+    p x;
+}
+
+// new-style function definitions
+
+typedef [10] * int arrayOf10Pointers;
+arrayOf10Pointers array;
+typedef const * int constantPointer;
+typedef * [ int ]( [] int ) funcPtr;
+typedef [ int ] funcProto( []  int );
+typedef [ int, int ] tupleType;
+typedef * [ int, int ] tupleTypePtr;
+typedef * int a, b;
+typedef [ int ] f( * int ), g;
+typedef [ * [static 10] int ] t;
+typedef [ * [static 10] int x ] f();
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/TypedefDeclarator.c
===================================================================
--- src/Tests/TypedefDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/TypedefDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,120 @@
+typedef int
+	 f0,  f1,  f2,  f3,  f4,  f5,  f6,  f7,  f8,  f9,
+	f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
+	f20, f21, f22, f23, f24, f25, f26, f27, f28, f29,
+	f30, f31, f32, f33, f34, f35, f36, f37, f38, f39,
+	f40, f41, f42, f43, f44, f45, f46, f47, f48, f49,
+	f50, f51, f52, f53, f54, f55, f56, f57, f58, f59,
+	f60, f61, f62, f63, f64, f65, f66, f67, f68, f69,
+	f70, f71, f72, f73, f74, f75, f76, f77, f78, f79,
+	f80, f81, f82, f83, f84, f85, f86, f87, f88, f89;
+
+int main() {
+	//int f0[]();
+	//int (f0[])();
+	//int f0()[];
+	//int f0()();
+	//int (*f0)()();
+	//int ((*f0())())[];
+	
+	int f1;
+	int (f2);
+
+	int *f3;
+	int **f4;
+	int * const *f5;
+	int * const * const f6;
+
+	int *(f7);
+	int **(f8);
+	int * const *(f9);
+	int * const * const (f10);
+
+	int (*f11);
+	int (**f12);
+	int (* const *f13);
+	int (* const * const f14);
+
+	int f15[];
+	int f16[10];
+	int (f17[]);
+	int (f18[10]);
+
+	int *f19[];
+	int *f20[10];
+	int **f21[];
+	int **f22[10];
+	int * const *f23[];
+	int * const *f24[10];
+	int * const * const f25[];
+	int * const * const f26[10];
+
+	int *(f27[]);
+	int *(f28[10]);
+	int **(f29[]);
+	int **(f30[10]);
+	int * const *(f31[]);
+	int * const *(f32[10]);
+	int * const * const (f33[]);
+	int * const * const (f34[10]);
+
+	int (*f35[]);
+	int (*f36[10]);
+	int (**f37[]);
+	int (**f38[10]);
+	int (* const *f39[]);
+	int (* const *f40[10]);
+	int (* const * const f41[]);
+	int (* const * const f42[10]);
+
+	int f43[][3];
+	int f44[3][3];
+	int (f45[])[3];
+	int (f46[3])[3];
+	int ((f47[]))[3];
+	int ((f48[3]))[3];
+
+	int *f49[][3];
+	int *f50[3][3];
+	int **f51[][3];
+	int **f52[3][3];
+	int * const *f53[][3];
+	int * const *f54[3][3];
+	int * const * const f55[][3];
+	int * const * const f56[3][3];
+
+	int (*f57[][3]);
+	int (*f58[3][3]);
+	int (**f59[][3]);
+	int (**f60[3][3]);
+	int (* const *f61[][3]);
+	int (* const *f62[3][3]);
+	int (* const * const f63[][3]);
+	int (* const * const f64[3][3]);
+
+	int f65(int);
+	int (f66)(int);
+
+	int *f67(int);
+	int **f68(int);
+	int * const *f69(int);
+	int * const * const f70(int);
+
+	int *(f71)(int);
+	int **(f72)(int);
+	int * const *(f73)(int);
+	int * const * const (f74)(int);
+
+	int (*f75)(int);
+	int (**f76)(int);
+	int (* const *f77)(int);
+	int (* const * const f78)(int);
+
+	int (*(*f79)(int))();
+	int (*(* const f80)(int))();
+	int (* const(* const f81)(int))();
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/TypedefParamDeclarator.c
===================================================================
--- src/Tests/TypedefParamDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/TypedefParamDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,154 @@
+typedef int
+	 f0,   f1,   f2,   f3,   f4,   f5,   f6,   f7,   f8,   f9,
+	f10,  f11,  f12,  f13,  f14,  f15,  f16,  f17,  f18,  f19,
+	f20,  f21,  f22,  f23,  f24,  f25,  f26,  f27,  f28,  f29,
+	f30,  f31,  f32,  f33,  f34,  f35,  f36,  f37,  f38,  f39,
+	f40,  f41,  f42,  f43,  f44,  f45,  f46,  f47,  f48,  f49,
+	f50,  f51,  f52,  f53,  f54,  f55,  f56,  f57,  f58,  f59,
+	f60,  f61,  f62,  f63,  f64,  f65,  f66,  f67,  f68,  f69,
+	f70,  f71,  f72,  f73,  f74,  f75,  f76,  f77,  f78,  f79,
+	f80,  f81,  f82,  f83,  f84,  f85,  f86,  f87,  f88,  f89,
+	f90,  f91,  f92,  f93,  f94,  f95,  f96,  f97,  f98,  f99,
+	f100, f101, f102, f103, f104, f105, f106, f107, f108, f109,
+	f110, f111, f112, f113, f114, f115, f116, f117, f118, f119;
+
+int fred(
+/*
+	//int f0[](),
+	//int (f0[])(),
+	//int f0()[],
+	//int f0()(),
+	//int (*f0)()(),
+	//int ((*f0())())[],
+*/
+	int f1,
+
+	int *f3,
+	int **f4,
+	int * const *f5,
+	int * const * const f6,
+
+	int (*f11),
+	int (**f12),
+	int (* const *f13),
+	int (* const * const f14),
+
+	int f15[],
+	int f16[10],
+
+	int *f19[],
+	int *f20[10],
+	int **f21[],
+	int **f22[10],
+	int * const *f23[],
+	int * const *f24[10],
+	int * const * const f25[],
+	int * const * const f26[10],
+
+	int (*f35[]),
+	int (*f36[10]),
+	int (**f37[]),
+	int (**f38[10]),
+	int (* const *f39[]),
+	int (* const *f40[10]),
+	int (* const * const f41[]),
+	int (* const * const f42[10]),
+
+	int f43[][3],
+	int f44[3][3],
+/*
+	int (f45[])[3],
+	int (f46[3])[3],
+	int ((f47[]))[3],
+	int ((f48[3]))[3],
+*/
+	int *f49[][3],
+	int *f50[3][3],
+	int **f51[][3],
+	int **f52[3][3],
+	int * const *f53[][3],
+	int * const *f54[3][3],
+	int * const * const f55[][3],
+	int * const * const f56[3][3],
+
+	int (*f57[][3]),
+	int (*f58[3][3]),
+	int (**f59[][3]),
+	int (**f60[3][3]),
+	int (* const *f61[][3]),
+	int (* const *f62[3][3]),
+	int (* const * const f63[][3]),
+	int (* const * const f64[3][3]),
+
+	int f65(int),
+/*
+	int (f66)(int),
+*/
+	int *f67(int),
+	int **f68(int),
+	int * const *f69(int),
+	int * const * const f70(int),
+/*
+	int *(f71)(int),
+	int **(f72)(int),
+	int * const *(f73)(int),
+	int * const * const (f74)(int),
+*/
+	int (*f75)(int),
+	int (**f76)(int),
+	int (* const *f77)(int),
+	int (* const * const f78)(int),
+
+	int (*(*f79)(int))(),
+	int (*(* const f80)(int))(),
+	int (* const(* const f81)(int))(),
+
+	int f82[const *],
+	int f83[const 3],
+	int f84[static 3],
+	int f85[static const 3],
+
+	int (f86[const *]),
+	int (f87[const 3]),
+	int (f88[static 3]),
+	int (f89[static const 3]),
+
+	int *f90[const *],
+	int *f91[const 3],
+	int **f92[static 3],
+	int * const *f93[static const 3],
+	int * const * const f94[static const 3],
+
+	int *(f95[const *]),
+	int *(f96[const 3]),
+	int **(f97[static 3]),
+	int * const *(f98[static const 3]),
+	int * const * const (f99[static const 3]),
+
+	int f100[const *][3],
+	int f101[const 3][3],
+	int f102[static 3][3],
+	int f103[static const 3][3],
+
+	int (f104[const *][3]),
+	int (f105[const 3][3]),
+	int (f106[static 3][3]),
+	int (f107[static const 3][3]),
+
+	int *f108[const *][3],
+	int *f109[const 3][3],
+	int **f110[static 3][3],
+	int * const *f111[static const 3][3],
+	int * const * const f112[static const 3][3],
+
+	int *(f113[const *][3]),
+	int *(f114[const 3][3]),
+	int **(f115[static 3][3]),
+	int * const *(f116[static const 3][3]),
+	int * const * const (f117[static const 3][3])
+	) {
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/Typeof.c
===================================================================
--- src/Tests/Typeof.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/Typeof.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,10 @@
+int main() {
+    int *v1;
+    typeof(v1) v2;
+    typeof(*v1) v3[4];
+    char *v4[4];
+    typeof(typeof(char *)[4]) v5;
+    typeof (int *) v6;
+    typeof( int ( int, int p ) ) *v7;
+    typeof( [int] ( int, int p ) ) *v8;
+}
Index: src/Tests/VariableDeclarator.c
===================================================================
--- src/Tests/VariableDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/VariableDeclarator.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,162 @@
+int f1;
+int (f2);
+
+int *f3;
+int **f4;
+int * const *f5;
+int * const * const f6;
+
+int *(f7);
+int **(f8);
+int * const *(f9);
+int * const * const (f10);
+
+int (*f11);
+int (**f12);
+int (* const *f13);
+int (* const * const f14);
+
+int f15[];
+int f16[10];
+int (f17[]);
+int (f18[10]);
+
+int *f19[];
+int *f20[10];
+int **f21[];
+int **f22[10];
+int * const *f23[];
+int * const *f24[10];
+int * const * const f25[];
+int * const * const f26[10];
+
+int *(f27[]);
+int *(f28[10]);
+int **(f29[]);
+int **(f30[10]);
+int * const *(f31[]);
+int * const *(f32[10]);
+int * const * const (f33[]);
+int * const * const (f34[10]);
+
+int (*f35)[];
+int (*f36)[10];
+int (**f37)[];
+int (**f38)[10];
+int (* const *f39)[];
+int (* const *f40)[10];
+int (* const * const f41)[];
+int (* const * const f42)[10];
+
+int f43[][3];
+int f44[3][3];
+int (f45[])[3];
+int (f46[3])[3];
+int ((f47[]))[3];
+int ((f48[3]))[3];
+
+int *f49[][3];
+int *f50[3][3];
+int **f51[][3];
+int **f52[3][3];
+int * const *f53[][3];
+int * const *f54[3][3];
+int * const * const f55[][3];
+int * const * const f56[3][3];
+
+int (*f57[][3]);
+int (*f58[3][3]);
+int (**f59[][3]);
+int (**f60[3][3]);
+int (* const *f61[][3]);
+int (* const *f62[3][3]);
+int (* const * const f63[][3]);
+int (* const * const f64[3][3]);
+
+int f65(int);
+int (f66)(int);
+
+int *f67(int);
+int **f68(int);
+int * const *f69(int);
+int * const * const f70(int);
+
+int *(f71)(int);
+int **(f72)(int);
+int * const *(f73)(int);
+
+int * const * const (f74)(int);
+
+int (*f75)(int);
+int (**f76)(int);
+int (* const *f77)(int);
+int (* const * const f78)(int);
+
+int (*(*f79)(int))();
+int (*(* const f80)(int))();
+int (* const(* const f81)(int))();
+
+// errors
+
+//int fe0[]();				// array of functions
+//int (fe1[])();				// array of functions
+//int fe2()[];				// returning an array
+//int fe3()();				// returning a function
+//int (*fe4)()();				// returning a function
+//int ((*fe5())())[];			// returning an array
+
+// Cforall extensions
+
+* int cf3;
+* * int cf4;
+* const * int cf5;
+const * const * int cf6;
+
+[] int cf15;
+[10] int cf16;
+
+[] * int cf19;
+[10] * int cf20;
+int **cf21[];
+[10] * * int cf22;
+[] * const * int cf23;
+[10] * const * int cf24;
+[] const * const * int cf25;
+[10] const * const * int cf26;
+
+* [] int cf35;
+* [10] int cf36;
+* * [] int cf37;
+* * [10] int cf38;
+* const * [] int cf39;
+* const * [10] int cf40;
+const * const * [] int cf41;
+const * const * [10] int cf42;
+
+[][3] int cf43;
+[3][3] int cf44;
+
+[][3] * int cf49;
+[3][3] * int cf50;
+[][3] * * int cf51;
+[3][3] * * int cf52;
+[][3] const * int cf53;
+[3][3] * const * int cf54;
+[][3] const * const * int cf55;
+[3][3] const * const * int cf56;
+
+[int] cf65(int);
+[int] cf66(int);
+
+[* int] cf67(int);
+[* * int] cf68(int);
+[const * * int] cf69(int);
+[const * const * int] cf70(int);
+
+// function pointer
+
+*[]*[]* [ *[]*[] int ]( *[]*[] int, *[]*[] int ) v3;
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: c/Tests/gcc/900407-1.c
===================================================================
--- src/Tests/gcc/900407-1.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,12 +1,0 @@
-foo ( int a, int b, int *p ) {
-	int c;
-	p[2] = a + 0x1000;
-	c = b + 0xffff0000;
-	if ( (b + 0xffff0000) == 2 )
-		c++;
-	p[2] = c;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/gcc/900516-1.c
===================================================================
--- src/Tests/gcc/900516-1.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,1 +1,0 @@
-f( int c ) { return ! ( c ? 2.0 : 1.0 ); }
Index: c/Tests/gcc/920301-1.c
===================================================================
--- src/Tests/gcc/920301-1.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,2 +1,0 @@
-f() { static void*t[]; /*={&&x};*/ x:y: ; }
-g() { static unsigned p[5]; }
Index: c/Tests/gcc/920409-1.c
===================================================================
--- src/Tests/gcc/920409-1.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,1 +1,0 @@
-x() { int y; y > 0.0 ? y : y - 1; }
Index: c/Tests/gcc/920409-2.c
===================================================================
--- src/Tests/gcc/920409-2.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,12 +1,0 @@
-double x() {
-	int x1, x2;
-	double v;
-	if ( ( (long)(x1-x2) ) < 1 )
-		return -1.0;
-	v = t( v );
-	v = y( 1, v > 0.0 ? (int)v : ( (int)v - 1 ) );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/gcc/920410-2.c
===================================================================
--- src/Tests/gcc/920410-2.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,12 +1,0 @@
-joe() {
-	int j;
-
-	while ( 1 ) {
-		for ( j = 0; j < 4; j++ );
-		for ( j = 0; j < 4; j++ );
-	}
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/gcc/920501-1.c
===================================================================
--- src/Tests/gcc/920501-1.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,1 +1,0 @@
-a() { int **b[] = { &&c }; c: ; }
Index: c/Tests/gcc/920501-11.c
===================================================================
--- src/Tests/gcc/920501-11.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,8 +1,0 @@
-typedef struct{ int s; } S;
-foo() {
-	int i = (int)&(S){ (void*)((int)&(S) {1}) };
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
Index: c/Tests/gcc/920501-19.c
===================================================================
--- src/Tests/gcc/920501-19.c	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ 	(revision )
@@ -1,1 +1,0 @@
-long long x = 0; y() { x = 0; }
Index: src/Tests/gcc900407-1.c
===================================================================
--- src/Tests/gcc900407-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/gcc900407-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+foo ( int a, int b, int *p ) {
+	int c;
+	p[2] = a + 0x1000;
+	c = b + 0xffff0000;
+	if ( (b + 0xffff0000) == 2 )
+		c++;
+	p[2] = c;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/gcc900516-1.c
===================================================================
--- src/Tests/gcc900516-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/gcc900516-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+f( int c ) { return ! ( c ? 2.0 : 1.0 ); }
Index: src/Tests/gcc920301-1.c
===================================================================
--- src/Tests/gcc920301-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/gcc920301-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,2 @@
+f() { static void*t[]; /*={&&x};*/ x:y: ; }
+g() { static unsigned p[5]; }
Index: src/Tests/gcc920409-1.c
===================================================================
--- src/Tests/gcc920409-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/gcc920409-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+x() { int y; y > 0.0 ? y : y - 1; }
Index: src/Tests/gcc920409-2.c
===================================================================
--- src/Tests/gcc920409-2.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/gcc920409-2.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+double x() {
+	int x1, x2;
+	double v;
+	if ( ( (long)(x1-x2) ) < 1 )
+		return -1.0;
+	v = t( v );
+	v = y( 1, v > 0.0 ? (int)v : ( (int)v - 1 ) );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/gcc920410-2.c
===================================================================
--- src/Tests/gcc920410-2.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/gcc920410-2.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,12 @@
+joe() {
+	int j;
+
+	while ( 1 ) {
+		for ( j = 0; j < 4; j++ );
+		for ( j = 0; j < 4; j++ );
+	}
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/gcc920501-1.c
===================================================================
--- src/Tests/gcc920501-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/gcc920501-1.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+a() { int **b[] = { &&c }; c: ; }
Index: src/Tests/gcc920501-11.c
===================================================================
--- src/Tests/gcc920501-11.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/gcc920501-11.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,8 @@
+typedef struct{ int s; } S;
+foo() {
+	int i = (int)&(S){ (void*)((int)&(S) {1}) };
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: src/Tests/gcc920501-19.c
===================================================================
--- src/Tests/gcc920501-19.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
+++ src/Tests/gcc920501-19.c	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -0,0 +1,1 @@
+long long x = 0; y() { x = 0; }
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
+++ src/main.cc	(revision b1d6dd544a60d22c07bdaaac6bc78180bf2015ad)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Fri May 15 23:12:02 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Tue Jun 09 15:10:05 2015
-// Update Count     : 68
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Jun 11 11:06:04 2015
+// Update Count     : 69
 //
 
@@ -71,5 +71,5 @@
 	errorp = false;
 
-enum { Ast, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Prototypes, Resolver, Symbol, Parse, };
+enum { Ast, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Validate, };
 
 static struct option long_opts[] = {
@@ -80,8 +80,9 @@
 	{ "libcfa", no_argument, 0, LibCFA },
 	{ "nopreamble", no_argument, 0, Nopreamble },
+	{ "parse", no_argument, 0, Parse },
 	{ "prototypes", no_argument, 0, Prototypes },
 	{ "resolver", no_argument, 0, Resolver },
 	{ "symbol", no_argument, 0, Symbol },
-	{ "parse", no_argument, 0, Parse },
+	{ "validate", no_argument, 0, Validate },
 	{ 0, 0, 0, 0 }
 };
@@ -96,5 +97,5 @@
 	
 	int c;
-	while ( (c = getopt_long( argc, argv, "aefglnpqrsxyzD:", long_opts, &long_index )) != -1 ) {
+	while ( (c = getopt_long( argc, argv, "aefglnpqrsvyzD:", long_opts, &long_index )) != -1 ) {
 		switch ( c ) {
 		  case Ast:
@@ -138,5 +139,5 @@
 			symtabp = true;
 			break;
-		  case 'x':										// dump AST after decl validation pass
+		  case 'v':										// dump AST after decl validation pass
 			validp = true;
 			break;
